关于Hibernate的手动配置详细过程
2017-11-30 16:13
381 查看
1.下载所需要的jar包,将其放在WebRoot下面的WEB-INF下面的lib中,其中不要忘记放入MySQL数据库驱动.
2.配置hibernate.cfg.xml文件.
在src目录下,新建一个.xml文件,名称取名为***.cfg.xml,其中cfg不能改变,这是config的缩写形式.
这里名称暂时为hibernate.cfg.xml.
3.在hibernate.cfg.xml中填写:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!-- 上面的东西叫做dtd约束,xml是使用标签的方式,保存元数据的文件,不是随便写的-->
<!-- 上面的这个约束,是官方的约束,约束的是只是符合xml的格式,而不管内容和自定义标签 -->
<!-- 如果没有网呢,就进不去了吗? 不。-->
<!--可以本地关联xml的dtd. window prefer 搜索xml xml中catalog-->
如何本地关联呢dtd呢?
Window--->Preference--->搜索xml,找到 XMLCatalog ,在右边的时候点击添加
选择Key type为URI网址的形式, key为刚才新建xml时的约束. 即http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd
其中Location为本地的dtd约束,即下载好的约束所存放的磁盘位置。 我的是 H:\开发常用工具\开发常用lib包\Hibernate\两个约束和映射\3.0.dtd;
点击确定即可.
3.配置时所用的应该用<hibernate-configuration> 标签, 然后后面跟着<session.factory> 标签,表示工厂
即: 先:
然后里面填写关于数据库的五个属性,
dialect表示方言,代表使用哪一个数据库,这里用Mysql数据库。 org.hibernate.dialect.MySQLDialect
connection.url代表连接路径: jdbc:mysql://localhost:3306/hibernate (需要在数据库中手动创建hibernate数据库,名称为hibernate. 这里的名称与数据库的名称相同)
connection.driver_class 驱动, com.mysql.jdbc.Driver
connection.username 表示用户名, root
connection.password 表示数据库密码,这里为abc123.
然后结束标签即可.
代码如下:
<hibernate-configuration>
<!-- 使用session会话的原理实现的 -->
<session-factory>
<!-- 保存数据库的相关信息和相关属性,有四巨头和方言,即用哪一个数据库的标识 -->
<!--这是一个方言 -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.username">root</property>
<property name="connection.password">abc123</property>
</session-factory>
</hibernate-configuration>
4.需要创建一个持久化类(即实体类),如这里为Admin类,基本的JavaBean类,不要忘记了无参构造.
这个类需要放在一个包下,一般这个包名为pojo,以前是entity,表示一个实体。 用com.hibernate.pojo包下,新建一个类,Admin.java类.
有两个属性. adminId, name
package com.hibernate.pojo;
public class Admin {
private int adminid;
private String name;
public int getAdminid() {
return adminid;
}
public void setAdminid(int adminid) {
this.adminid = adminid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Admin() {
super();
}
public Admin(int adminid, String name) {
super();
this.adminid = adminid;
this.name = name;
}
}
5.在pojo包下,即与Admin同级的目录下,创建这个持久化类的配置文件***.hbm.xml文件,这里最好与其类名保持一致,故为Admin.hbm.xml,
其中hbm应该是hibernate mapping的缩写形式,不能改变.
6.进入Admin.hbm.xml进行编写
为映射,故用<hibernate-mapping>标签进行包裹.
不要忘记写约束了.
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
也可以进行断网本地配置,与配置hibernate.cfg.xml相同。这里不简述了.
<hibernate-mapping>
<!-- 这个名字要写全限定名称,要写全 , table为生成后表的名称-->
<class name="com.hibernate.pojo.Admin" table="admin">
<id name="adminid" length="8" type="java.lang.Integer"> <!-- 修改长度 也有其它的东西 -->
<!-- 设置成id,自动增用 native -->
<generator class="native"></generator>
</id>
<!-- 这是持久化类的属性值 -->
<property name="name" type="java.lang.String">
<!-- 这是数据库中的列名 -->
<column name="name"></column>
</property>
</class>
</hibernate-mapping>
里面有一个class标签, 其中name为配置持久化类的名称,这里应该用全限名,即完整类名,类名应该用. 点号来连接, table为要生成表的名称
需要设置一个id,即为数据库的id,其中这个id要是int类型的,绝对不能是其它类型的.
其中 均采用key---value值进行映射.
name="属性值", 可以写长度:length; 其中name="adminid",这是一个属性值.
要设置自动增长,需要用 <generator class="native"> </generator>
在数据库中 <column name="adminid"> 表示数据库中的字段名, type 表示数据的类型,为java.lang.Integer和 java.lang.String
也可以添加多个字段
<!-- 这是持久化类的属性值 -->
<property name="name" type="java.lang.String">
<!-- 这是数据库中的列名 -->
<column name="name"></column>
</property>
7.在hibernate.cfg.xml配置中添加映射.
<!-- 向日志中输出sql语句 -->
<property name="show_sql">true</property>
<!-- 格式化输出sql语句 -->
<!-- <property name="format_sql">true</property> -->
<!--生成表所需要配置的属性,这一个必须写 -->
<property name="hbm2ddl.auto">update</property>
<!-- 写映射了,将hbm.xml写入进去,关联映射文件生成表-->
<mapping resource="com/hibernate/pojo/Admin.hbm.xml" />
show_sql为在日志中显示sql语句, format_sql为格式化显示sql语句,即换行显示.
需要添加name=hbm2ddl.auto 这一个必须要写
mapping中resource中写入映射的完整名称, resource="com/hibernate/pojo/Admin.hbm.xml"
此刻,完整的hibernate.cfg.xml为:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- 如何让表和对象创建关联 -->
<hibernate-mapping>
<!-- 一个类对应一个表的结构 -->
<!-- 这个名字要写全限定名称,要写全 , table为生成后表的名称-->
<class name="com.hibernate.pojo.Admin" table="admin">
<id name="adminid" length="8" type="java.lang.Integer"> <!-- 修改长度 也有其它的东西 -->
<!-- 设置成id,自动增用 native -->
<generator class="native"></generator>
</id>
<!-- 这是持久化类的属性值 -->
<property name="name" type="java.lang.String">
<!-- 这是数据库中的列名 -->
<column name="name"></column>
</property>
</class>
</hibernate-mapping>
此时,配置就全部完成了。下面进行一下检测,实现基本的插入功能
public class TestOne {
@Test
public void test1(){
//1. 读取hibernate中配置文件.cfg.xml了
Configuration cfg=new Configuration();
cfg.configure();
//2.hiberante4.x之后需要生成注册码才可以使用
ServiceRegistry sr=new ServiceRegistryBuilder()
.applySettings(cfg.getProperties()).buildServiceRegistry();
//3创建SessionFactory 生成工厂
SessionFactory sf=cfg.buildSessionFactory(sr);
//4通过工厂得到session会话 均是hibernate包下的
Session session=sf.openSession();
//5 Hibernate要求我们必须通过事务Transaction 向数据库发送sql语句 commit
//开启事务 Transaction transaction
//save和update和delete需要用事务,但查询不需要用事务
Transaction tran=session.beginTransaction();
//6使用save()方法生成insert语句,插入数据库中一条记录
//Admin admin=new Admin(1,"张三");
//Admin admin=new Admin(2,"yjl");
Admin admin=new Admin();
admin.setName("admin");
session.save(admin);
//需要事务提交
tran.commit();
//需要进行关闭,先开始的后关闭原则
session.close();
sf.close();
}
}
注意:一定要注意包名之间的层次结构,
hibernate.cfg.xml在src目录下, Admin.hbm.xml与Admin在同一目录下,均在com.hibernate.pojo包下.
发现数据库可以正常的生成表了.
手动配置完成
2.配置hibernate.cfg.xml文件.
在src目录下,新建一个.xml文件,名称取名为***.cfg.xml,其中cfg不能改变,这是config的缩写形式.
这里名称暂时为hibernate.cfg.xml.
3.在hibernate.cfg.xml中填写:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!-- 上面的东西叫做dtd约束,xml是使用标签的方式,保存元数据的文件,不是随便写的-->
<!-- 上面的这个约束,是官方的约束,约束的是只是符合xml的格式,而不管内容和自定义标签 -->
<!-- 如果没有网呢,就进不去了吗? 不。-->
<!--可以本地关联xml的dtd. window prefer 搜索xml xml中catalog-->
如何本地关联呢dtd呢?
Window--->Preference--->搜索xml,找到 XMLCatalog ,在右边的时候点击添加
选择Key type为URI网址的形式, key为刚才新建xml时的约束. 即http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd
其中Location为本地的dtd约束,即下载好的约束所存放的磁盘位置。 我的是 H:\开发常用工具\开发常用lib包\Hibernate\两个约束和映射\3.0.dtd;
点击确定即可.
3.配置时所用的应该用<hibernate-configuration> 标签, 然后后面跟着<session.factory> 标签,表示工厂
即: 先:
然后里面填写关于数据库的五个属性,
dialect表示方言,代表使用哪一个数据库,这里用Mysql数据库。 org.hibernate.dialect.MySQLDialect
connection.url代表连接路径: jdbc:mysql://localhost:3306/hibernate (需要在数据库中手动创建hibernate数据库,名称为hibernate. 这里的名称与数据库的名称相同)
connection.driver_class 驱动, com.mysql.jdbc.Driver
connection.username 表示用户名, root
connection.password 表示数据库密码,这里为abc123.
然后结束标签即可.
代码如下:
<hibernate-configuration>
<!-- 使用session会话的原理实现的 -->
<session-factory>
<!-- 保存数据库的相关信息和相关属性,有四巨头和方言,即用哪一个数据库的标识 -->
<!--这是一个方言 -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.username">root</property>
<property name="connection.password">abc123</property>
</session-factory>
</hibernate-configuration>
4.需要创建一个持久化类(即实体类),如这里为Admin类,基本的JavaBean类,不要忘记了无参构造.
这个类需要放在一个包下,一般这个包名为pojo,以前是entity,表示一个实体。 用com.hibernate.pojo包下,新建一个类,Admin.java类.
有两个属性. adminId, name
package com.hibernate.pojo;
public class Admin {
private int adminid;
private String name;
public int getAdminid() {
return adminid;
}
public void setAdminid(int adminid) {
this.adminid = adminid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Admin() {
super();
}
public Admin(int adminid, String name) {
super();
this.adminid = adminid;
this.name = name;
}
}
5.在pojo包下,即与Admin同级的目录下,创建这个持久化类的配置文件***.hbm.xml文件,这里最好与其类名保持一致,故为Admin.hbm.xml,
其中hbm应该是hibernate mapping的缩写形式,不能改变.
6.进入Admin.hbm.xml进行编写
为映射,故用<hibernate-mapping>标签进行包裹.
不要忘记写约束了.
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
也可以进行断网本地配置,与配置hibernate.cfg.xml相同。这里不简述了.
<hibernate-mapping>
<!-- 这个名字要写全限定名称,要写全 , table为生成后表的名称-->
<class name="com.hibernate.pojo.Admin" table="admin">
<id name="adminid" length="8" type="java.lang.Integer"> <!-- 修改长度 也有其它的东西 -->
<!-- 设置成id,自动增用 native -->
<generator class="native"></generator>
</id>
<!-- 这是持久化类的属性值 -->
<property name="name" type="java.lang.String">
<!-- 这是数据库中的列名 -->
<column name="name"></column>
</property>
</class>
</hibernate-mapping>
里面有一个class标签, 其中name为配置持久化类的名称,这里应该用全限名,即完整类名,类名应该用. 点号来连接, table为要生成表的名称
需要设置一个id,即为数据库的id,其中这个id要是int类型的,绝对不能是其它类型的.
其中 均采用key---value值进行映射.
name="属性值", 可以写长度:length; 其中name="adminid",这是一个属性值.
要设置自动增长,需要用 <generator class="native"> </generator>
在数据库中 <column name="adminid"> 表示数据库中的字段名, type 表示数据的类型,为java.lang.Integer和 java.lang.String
也可以添加多个字段
<!-- 这是持久化类的属性值 -->
<property name="name" type="java.lang.String">
<!-- 这是数据库中的列名 -->
<column name="name"></column>
</property>
7.在hibernate.cfg.xml配置中添加映射.
<!-- 向日志中输出sql语句 -->
<property name="show_sql">true</property>
<!-- 格式化输出sql语句 -->
<!-- <property name="format_sql">true</property> -->
<!--生成表所需要配置的属性,这一个必须写 -->
<property name="hbm2ddl.auto">update</property>
<!-- 写映射了,将hbm.xml写入进去,关联映射文件生成表-->
<mapping resource="com/hibernate/pojo/Admin.hbm.xml" />
show_sql为在日志中显示sql语句, format_sql为格式化显示sql语句,即换行显示.
需要添加name=hbm2ddl.auto 这一个必须要写
mapping中resource中写入映射的完整名称, resource="com/hibernate/pojo/Admin.hbm.xml"
此刻,完整的hibernate.cfg.xml为:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- 如何让表和对象创建关联 -->
<hibernate-mapping>
<!-- 一个类对应一个表的结构 -->
<!-- 这个名字要写全限定名称,要写全 , table为生成后表的名称-->
<class name="com.hibernate.pojo.Admin" table="admin">
<id name="adminid" length="8" type="java.lang.Integer"> <!-- 修改长度 也有其它的东西 -->
<!-- 设置成id,自动增用 native -->
<generator class="native"></generator>
</id>
<!-- 这是持久化类的属性值 -->
<property name="name" type="java.lang.String">
<!-- 这是数据库中的列名 -->
<column name="name"></column>
</property>
</class>
</hibernate-mapping>
此时,配置就全部完成了。下面进行一下检测,实现基本的插入功能
public class TestOne {
@Test
public void test1(){
//1. 读取hibernate中配置文件.cfg.xml了
Configuration cfg=new Configuration();
cfg.configure();
//2.hiberante4.x之后需要生成注册码才可以使用
ServiceRegistry sr=new ServiceRegistryBuilder()
.applySettings(cfg.getProperties()).buildServiceRegistry();
//3创建SessionFactory 生成工厂
SessionFactory sf=cfg.buildSessionFactory(sr);
//4通过工厂得到session会话 均是hibernate包下的
Session session=sf.openSession();
//5 Hibernate要求我们必须通过事务Transaction 向数据库发送sql语句 commit
//开启事务 Transaction transaction
//save和update和delete需要用事务,但查询不需要用事务
Transaction tran=session.beginTransaction();
//6使用save()方法生成insert语句,插入数据库中一条记录
//Admin admin=new Admin(1,"张三");
//Admin admin=new Admin(2,"yjl");
Admin admin=new Admin();
admin.setName("admin");
session.save(admin);
//需要事务提交
tran.commit();
//需要进行关闭,先开始的后关闭原则
session.close();
sf.close();
}
}
注意:一定要注意包名之间的层次结构,
hibernate.cfg.xml在src目录下, Admin.hbm.xml与Admin在同一目录下,均在com.hibernate.pojo包下.
发现数据库可以正常的生成表了.
手动配置完成
相关文章推荐
- 关于PHP-Zend framework2 框架 学习过程。 阅前须知: ZF2中的配置文件是可以静态文件配置来注册和通过相关函数动态注册。 1.EventManager(事件驱动),关于事件驱动,在ZF2相关资料没有详细说明,可以参考ANDROID的事件驱动,MFC的消息响应/事件驱动。
- Hibernate 4.2.2配置二级缓存的详细过程
- 利用Myeclipse开发hibernate的配置过程-图文详细教程
- 关于使用Spring和hibernate开发web程序的配置说明和简单实例的详细说明
- 手动配置hibernate的全过程
- 关于符号化执行平台s2e的详细配置以及安装过程说明
- 关于hibernate配置文件的formula(公式)属性的运用
- Struts2 拦截器详细配置过程
- 关于IDEA-MAVEN-Strtus-Hibernate的配置
- Hibernate的手动基本配置和DAO类增删改查方法的封装
- redhat7环境下配置Python3.6.2的详细过程
- 安装ionic 以及 cordova 环境配置详细过程,(错误解决)
- Linux + Oracle 11g R2 RAC 安装配置详细过程
- 在NBMA网络广播模式下配置OSPF实际案例(配图)+详细验证过程
- hibernate配置文件详细解释
- ubuntu下TFTP服务器及NFS网络配置详细过程
- HPUX11.31U ia64安装配置详细过程文档
- 安装配置OPENCMS的Replication cluster(从)详细过程
- Spring中的JDBCTemplate使用(非常详细的配置过程)
- STM32F0xx_TIM输出PWM配置详细过程