hibernate开发步骤
2012-08-20 23:15
405 查看
*2 hibernate快速入门
1)开发步骤:
>>导入hibernate相关的10个jar包,如果后面,要用到其它功能,可以添加新jar包
(包括了MySQL的驱动包)
>>创建表:customers.sql
>>创建实体:Customer.java
>>创建Customer.hbm.xml映射文件,目的是通知hibernate框架,如何将实体和表关联起来
>>创建hibernate.cfg.xml配置文件,目的是通知hibernate框架,如何连接不同的数据库和产生不同数据库的SQL命令
>>测试类:CURD操作(CustomerService)
2具体步骤详解
>>jar 包:
antlr-2.7.6.jar 一个语言转换工具,Hibernate利用它实现 HQL
到 SQL 的转换
commons-collections-3.1.jar collections Apache
的工具集,用来增强Java对集合的处理能力
dom4j-1.6.1.jar dom4j XML 解析器
hibernate3.jar 核心包
javassist-3.9.0.GA.jar 代码生成工具, Hibernate用它在运行时扩展 Java类
jta-1.1.jar 标准的 JAVA
事务处理接口
log4j.jar 日志包
mysql-connector-java-5.1.7-bin.jar mysql驱动包
slf4j-api-1.5.8.jar slf4j-log4j12.jar hibernate使用的一个日志系统
>>创建sql表
例: dropdatabaseifexists hibernate;
createdatabaseifnotexists hibernate;
use hibernate;
droptableifexists customer;
createtableifnotexists customer(
id
intprimarykey auto_increment,
namevarchar(20)
default "小小",
ageintdefault 21,
des
varchar(100) default "文雅"
);
select * from customer;
>>Customer.hbm.xml文件
1.Hibernate 采用 XML 格式的文件来指定对象和关系数据之间的映射.
在运行时 Hibernate 将根据这个映射文件来生成各种 SQL
语句, 映射文件的扩展名为 .hbm.xml
如;Customer.hbm.xml文件.
如: 以上Customer.hbm.xml文件是Customer类和customers表的对应关系。该文件前缀必须和类名一致,后缀必须是.hbm.xml。文件位置任意
2. property元素:设定持久化类的属性和表字段映射
name属性:指定持久化类的属性的名字
column属性:指定表中字段的名称
type属性指定Hibernate映射类型 Hibernate映射类型是java类型与SQL类型的桥梁
.hbm.xml文件的来源:
hibernate-distribution-3.5.6-Final-dist.zip\hibernate-distribution-3.5.6-Final\project\tutorials\web\src\main\resources\org\hibernate\tutorial\domain......
注:该映射文件的规范在org.hibernate. hibernate-mapping-3.0.dtd文件中
例:
Customer.hbm.xml文件的属性含义:
<hibernate-mapping package="cn.itcast.web.hibernate.character0(实体对象的包名)">
<class name="Customer(类名)" table="CUSTOMERS(表名)">
<id name="id" column="ID" type="integer">
<generator class="increment"/>
</id>
<property name="name(属性名)" column="NAME(列名)"
type="string(hibernate类型)"/>
<property name="age(属性名)" column="AGE(列名)"
type="integer(hibernate类型)"/>
<property name="des(属性名)" column="DES(列名)"
type="string(hibernate类型)"/>
</class>
</hibernate-mapping>
>>hibernate.cfg.xml文件
创建 Hibernate 配置文件, Hibernate
从其配置文件中读取和数据库连接的有关信息, 这个文件应该位于应用的 classpath
下.
文件名必须是hibernate.cfg.xml,文件位置任意,
除了使用xml作为配置文件之除,还可以使用hibernate.properties文件(项目中不提倡)。
注:该映射文件的规范在org.hibernate.hibernate-configuration-3.0.dtd文件中
文件的来源:
hibernate-distribution-3.5.6-Final-dist.zip\hibernate-distribution-3.5.6-Final\project\tutorials\web\src\main\resources
例:
hibernate.cfg.xml文件的属性含义:
<hibernate-configuration>
<session-factory>
<!-- 配置连接数据库的相关属性 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver(驱动类名)</property>
<property name="connection.url">jdbc:mysql://127.0.0.1:3306/hibernate(URL)</property>
<property name="connection.username">root(访问数据库的用户名)</property>
<property name="connection.password">root(访问数据库的密码)</property>
<!-- 通知hibernate动态生成哪个数据库的SQL命令
-->
<property name="dialect">org.hibernate.dialect.MySQL5Dialect(数据库的方言)</property>
<!--
显示hibernate动态生成的SQL命令,true表示显示
-->
<property name="show_sql">true(需要显示sq命令)</property>
<!-- 加载对象和关系的映射文件 -->
<mapping resource="cn/itcast/web/hibernate/character0/Customer.hbm.xml(映射文件的类路径)"/>
</session-factory>
</hibernate-configuration>
>>Configuration类:
是hibernate中一个用于加载hibernate.cfg.xml文件的类,config .config(“xml文件的类路径”)方法能够加载指定目录下的hibernate.cfg.xml文件,config.buildSessionFactory()创建一个SessionFactory工厂。该工厂有大量空闲的session.
Configuration 类负责管理 Hibernate
的配置信息。包括如下内容:
Hibernate运行的底层信息:数据库的URL、用户名、密码、JDBC驱动类,数据库Dialect,数据库连接池等(对应
hibernate.cfg.xml 文件)。持久化类与数据表的映射关系(*.hbm.xml
文件).
创建 Configuration 的两种方式
• 属性文件(src/hibernate.properties):
Configuration cfg = new Configuration();
• Xml文件(src/hibernate.cfg.xml)推荐
Configuration cfg = new Configuration().configure();
Configuration cfg = new Configuration().configure(“目录”);
>>SessionFactory接口
保存了当前的数据库配置信息和所有映射关系以及预定义的SQL语句。同时,SessionFactory还负责维护Hibernate的二级缓存,有且只放置一种类型数据库的相关信息
, 重量级,即创建需要大量时间和资源,因此将创建SessionFactory的工作,放在static块中,只创建一个,便于重用 , SessionFactory是一个线程安全的,所以可以定义成实例变量,无需加synchronized。
创建方式:
Configuration cfg = new Configuration().configure();
SessionFactory sf = cfg.buildSessionFactory();
>>Session
SessionFactory.openSession()
Session是由SessionFactory获取而来,它是轻量级,即创建需要少量时间和资源,每次数据库的操作(CURD)都需要一个Session的绑助,没有Session就无法与数据库表操作。
Session 是应用程序与数据库之间交互操作的一个单线程对象,是 Hibernate
运作的中心,所有持久化对象必须在 session
的管理下才可以进行持久化操作。此对象的生命周期很短。Session
对象有一个一级缓存,显式执行 flush 之前,所有的持久层操作的数据都缓存在 session
对象处。相当于 JDBC 中的 Connection
Session常用的API
session.save(对象) //向数据库插入数据
session.update(对象) //更新数据
session.delete(对象) //删除数据
session.get(对象的字节码class文件,序号) //查询数据
//查询所有数据信息
String hibernateSQL = " from 需要查询的类的类名"; 例如: 查询User类 String hibernateSQL = " from User"; 此处的类名一个要和创建的类名保持一致.
Query query = session.createQuery("hibenate query language语句,不是sql语句")
例: Query query = session.createQuery(hibernateSQL) ;
List<类> list = query.list()
Session是不安全的,不要定义成实例变量,除非加synchronized。
将Session定义成局部变量,即在某个方法内部,就无需加synchronized。
>>Transaction接口(事物)
通过session.getTransaction()取得事务对象,在应用时,除查询外,其它都需要事务的支持,查询对事务的要求不限(可选),
开始事务:t.begin()
提交事务:t.commit()
回滚事务:t.rollback()
显示try..catch...finally...
例:
publicvoid saveCustomer(){
//创建customer对象,并设置属性值
Customer cus =
new Customer();
cus.setName("思思");
cus.setAge(21);
cus.setDes("文静");
//创建confingration对象
Configuration config =
new Configuration();
//加载配置文件,连接驱动
config.configure("cn/web/hibernate/hibernate.cfg.xml");
//创建sessionfactory
SessionFactory sessionfactory = config.buildSessionFactory();
//创建session
Session session = sessionfactory.openSession();
//创建事物
Transaction transaction= session.getTransaction();
try {
//事物开始
transaction.begin();
//保存实体域对象到表中
session.save(cus);
}
catch (HibernateException e) {
//错误的情况下事物恢复到原有的状态
transaction.rollback();
}finally{
//事务结束
transaction.commit();
}
session.close();
}
1)开发步骤:
>>导入hibernate相关的10个jar包,如果后面,要用到其它功能,可以添加新jar包
(包括了MySQL的驱动包)
>>创建表:customers.sql
>>创建实体:Customer.java
>>创建Customer.hbm.xml映射文件,目的是通知hibernate框架,如何将实体和表关联起来
>>创建hibernate.cfg.xml配置文件,目的是通知hibernate框架,如何连接不同的数据库和产生不同数据库的SQL命令
>>测试类:CURD操作(CustomerService)
2具体步骤详解
>>jar 包:
antlr-2.7.6.jar 一个语言转换工具,Hibernate利用它实现 HQL
到 SQL 的转换
commons-collections-3.1.jar collections Apache
的工具集,用来增强Java对集合的处理能力
dom4j-1.6.1.jar dom4j XML 解析器
hibernate3.jar 核心包
javassist-3.9.0.GA.jar 代码生成工具, Hibernate用它在运行时扩展 Java类
jta-1.1.jar 标准的 JAVA
事务处理接口
log4j.jar 日志包
mysql-connector-java-5.1.7-bin.jar mysql驱动包
slf4j-api-1.5.8.jar slf4j-log4j12.jar hibernate使用的一个日志系统
>>创建sql表
例: dropdatabaseifexists hibernate;
createdatabaseifnotexists hibernate;
use hibernate;
droptableifexists customer;
createtableifnotexists customer(
id
intprimarykey auto_increment,
namevarchar(20)
default "小小",
ageintdefault 21,
des
varchar(100) default "文雅"
);
select * from customer;
>>Customer.hbm.xml文件
1.Hibernate 采用 XML 格式的文件来指定对象和关系数据之间的映射.
在运行时 Hibernate 将根据这个映射文件来生成各种 SQL
语句, 映射文件的扩展名为 .hbm.xml
如;Customer.hbm.xml文件.
如: 以上Customer.hbm.xml文件是Customer类和customers表的对应关系。该文件前缀必须和类名一致,后缀必须是.hbm.xml。文件位置任意
2. property元素:设定持久化类的属性和表字段映射
name属性:指定持久化类的属性的名字
column属性:指定表中字段的名称
type属性指定Hibernate映射类型 Hibernate映射类型是java类型与SQL类型的桥梁
.hbm.xml文件的来源:
hibernate-distribution-3.5.6-Final-dist.zip\hibernate-distribution-3.5.6-Final\project\tutorials\web\src\main\resources\org\hibernate\tutorial\domain......
注:该映射文件的规范在org.hibernate. hibernate-mapping-3.0.dtd文件中
例:
Customer.hbm.xml文件的属性含义:
<hibernate-mapping package="cn.itcast.web.hibernate.character0(实体对象的包名)">
<class name="Customer(类名)" table="CUSTOMERS(表名)">
<id name="id" column="ID" type="integer">
<generator class="increment"/>
</id>
<property name="name(属性名)" column="NAME(列名)"
type="string(hibernate类型)"/>
<property name="age(属性名)" column="AGE(列名)"
type="integer(hibernate类型)"/>
<property name="des(属性名)" column="DES(列名)"
type="string(hibernate类型)"/>
</class>
</hibernate-mapping>
>>hibernate.cfg.xml文件
创建 Hibernate 配置文件, Hibernate
从其配置文件中读取和数据库连接的有关信息, 这个文件应该位于应用的 classpath
下.
文件名必须是hibernate.cfg.xml,文件位置任意,
除了使用xml作为配置文件之除,还可以使用hibernate.properties文件(项目中不提倡)。
注:该映射文件的规范在org.hibernate.hibernate-configuration-3.0.dtd文件中
文件的来源:
hibernate-distribution-3.5.6-Final-dist.zip\hibernate-distribution-3.5.6-Final\project\tutorials\web\src\main\resources
例:
hibernate.cfg.xml文件的属性含义:
<hibernate-configuration>
<session-factory>
<!-- 配置连接数据库的相关属性 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver(驱动类名)</property>
<property name="connection.url">jdbc:mysql://127.0.0.1:3306/hibernate(URL)</property>
<property name="connection.username">root(访问数据库的用户名)</property>
<property name="connection.password">root(访问数据库的密码)</property>
<!-- 通知hibernate动态生成哪个数据库的SQL命令
-->
<property name="dialect">org.hibernate.dialect.MySQL5Dialect(数据库的方言)</property>
<!--
显示hibernate动态生成的SQL命令,true表示显示
-->
<property name="show_sql">true(需要显示sq命令)</property>
<!-- 加载对象和关系的映射文件 -->
<mapping resource="cn/itcast/web/hibernate/character0/Customer.hbm.xml(映射文件的类路径)"/>
</session-factory>
</hibernate-configuration>
>>Configuration类:
是hibernate中一个用于加载hibernate.cfg.xml文件的类,config .config(“xml文件的类路径”)方法能够加载指定目录下的hibernate.cfg.xml文件,config.buildSessionFactory()创建一个SessionFactory工厂。该工厂有大量空闲的session.
Configuration 类负责管理 Hibernate
的配置信息。包括如下内容:
Hibernate运行的底层信息:数据库的URL、用户名、密码、JDBC驱动类,数据库Dialect,数据库连接池等(对应
hibernate.cfg.xml 文件)。持久化类与数据表的映射关系(*.hbm.xml
文件).
创建 Configuration 的两种方式
• 属性文件(src/hibernate.properties):
Configuration cfg = new Configuration();
• Xml文件(src/hibernate.cfg.xml)推荐
Configuration cfg = new Configuration().configure();
Configuration cfg = new Configuration().configure(“目录”);
>>SessionFactory接口
保存了当前的数据库配置信息和所有映射关系以及预定义的SQL语句。同时,SessionFactory还负责维护Hibernate的二级缓存,有且只放置一种类型数据库的相关信息
, 重量级,即创建需要大量时间和资源,因此将创建SessionFactory的工作,放在static块中,只创建一个,便于重用 , SessionFactory是一个线程安全的,所以可以定义成实例变量,无需加synchronized。
创建方式:
Configuration cfg = new Configuration().configure();
SessionFactory sf = cfg.buildSessionFactory();
>>Session
SessionFactory.openSession()
Session是由SessionFactory获取而来,它是轻量级,即创建需要少量时间和资源,每次数据库的操作(CURD)都需要一个Session的绑助,没有Session就无法与数据库表操作。
Session 是应用程序与数据库之间交互操作的一个单线程对象,是 Hibernate
运作的中心,所有持久化对象必须在 session
的管理下才可以进行持久化操作。此对象的生命周期很短。Session
对象有一个一级缓存,显式执行 flush 之前,所有的持久层操作的数据都缓存在 session
对象处。相当于 JDBC 中的 Connection
Session常用的API
session.save(对象) //向数据库插入数据
session.update(对象) //更新数据
session.delete(对象) //删除数据
session.get(对象的字节码class文件,序号) //查询数据
//查询所有数据信息
String hibernateSQL = " from 需要查询的类的类名"; 例如: 查询User类 String hibernateSQL = " from User"; 此处的类名一个要和创建的类名保持一致.
Query query = session.createQuery("hibenate query language语句,不是sql语句")
例: Query query = session.createQuery(hibernateSQL) ;
List<类> list = query.list()
Session是不安全的,不要定义成实例变量,除非加synchronized。
将Session定义成局部变量,即在某个方法内部,就无需加synchronized。
>>Transaction接口(事物)
通过session.getTransaction()取得事务对象,在应用时,除查询外,其它都需要事务的支持,查询对事务的要求不限(可选),
开始事务:t.begin()
提交事务:t.commit()
回滚事务:t.rollback()
显示try..catch...finally...
例:
publicvoid saveCustomer(){
//创建customer对象,并设置属性值
Customer cus =
new Customer();
cus.setName("思思");
cus.setAge(21);
cus.setDes("文静");
//创建confingration对象
Configuration config =
new Configuration();
//加载配置文件,连接驱动
config.configure("cn/web/hibernate/hibernate.cfg.xml");
//创建sessionfactory
SessionFactory sessionfactory = config.buildSessionFactory();
//创建session
Session session = sessionfactory.openSession();
//创建事物
Transaction transaction= session.getTransaction();
try {
//事物开始
transaction.begin();
//保存实体域对象到表中
session.save(cus);
}
catch (HibernateException e) {
//错误的情况下事物恢复到原有的状态
transaction.rollback();
}finally{
//事务结束
transaction.commit();
}
session.close();
}
相关文章推荐
- Hibernate学习之Hibernate开发步骤(一)
- Struts2+Hibernate整合应用开发步骤
- Hibernate基本开发步骤
- Hibernate开发步骤,执行流程、方言的作用、映射文件的作用、如何进行联合主键映射
- Hibernate应用开发步骤(学习笔记)
- Struts2+Hibernate整合应用开发步骤
- hibernate 开发步骤
- 使用Hibernate框架开发步骤
- Hibernate的开发全步骤过程
- Hibernate开发基本步骤
- MyEclipse快速开发Hibernate的步骤
- J2EE框架(TomcatStrutsHibernateSpringAjax(dojo))开发步骤:
- J2EE框架(TomcatStrutsHibernateSpringAjax(dojo))开发步骤
- hibernate开发步骤
- Struts2+Hibernate整合应用开发步骤
- Struts2+Hibernate整合应用开发步骤
- Hibernate的开发全步骤过程
- 【web开发】spring mvc+hibernate项目避免乱码的步骤
- J2EE框架(TomcatStrutsHibernateSpringAjax(dojo))开发步骤
- hibernate开发步骤