Hibernate学习——第一章

一、ORM原理与Hibernate的基本结构

ORM(Object Relational Mapping)是对象到关系的映射,是一种解决实体对象与关系型数据库相互匹配的技术,即将数据库中的数据表映射为对象,对关系型数据库以对对象的形式进行操作。

Hibernate框架中,通过持久化类(即实体对象)(*.java)、Hibernate映射文件(即实体对象与数据库关联映射规则)(*.hbm.xml)及Hibernate配置文件(*.cfg.xml)与数据库进行交互。

所需jar包(以hibernate-distribution-3.6.0.Final 为例):

必需的jar包:hibernate3.jar(核心包)、及lib文件夹下required文件夹与jpa文件夹下的所有jar包。

非必需的jar包:其他均为非必需jar包。

二、Hibernate的常用配置。

-- API简介
Configuration 配置
configure()
configure(String resource)
addResource(String resource)导入一个指定位置的映射文件
addClass(Class clazz)导入与指定类同一个包中的以类名为前缀,后缀为.hbm.xml的映射文件
buildSessionFactory()

SessionFactorySession工厂
openSession()
getCurrentSession()
close()
Session 很重要的一个对象
操作对象的方法
save(Object)
update(Object)
delete(Object)
查询的方法
createQuery(String)--> Query
createCriteria(Class)
管理事务的方法
beginTransaction() --> Transaction
getTransaction()   --> Transaction获取当前Session中关联的事务对象
其他的方法
...

Transaction 事务
commit()
rollback()

Query 查询
list()查询一个结果集合。
uniqueResult()查询一个唯一的结果,如果没有结果,则返回null,如果结果有多个,就抛异常。
...

——--------------------------------

Hibernate主配置文件

1,配置的key前面的hibernate.前缀 可以有,也可以没有。如hibernate.dialect或dialect都可以。
2,按作用可分为三类:
1,数据库信息

方言、JdbcUrl、驱动、用户名、密码
2,导入映射文件

3,其他配置

show_sql 显示生成的SQL语句
format_sql 格式化生成的SQL语句
hbm2ddl.auto 自动生成表结构
hibernate.hbm2ddl.auto
生成表结构的两种方式:
1,hbm2ddl.auto
2,使用SchemaExport工具类
注意:只能建表,不能建库

==============
主键:
如果是数字,建议使用包装类型(包装类型可以为null)。


identity
sequence (oracle数据库使用)
hilo (高地位生成策略)
native 
assigned (手动生成)
uuid
foreign
...


—————————————————————————————————————————————————————————————————————————————

测试类的模板代码:

public static SessionFactory sessionFactory = new Configuration() //生成Configuration对象
			.configure()//加载默认位置的Hibernate配置文件,默认位置为classpath下,文件名为hibernate.cfg.xml
			.addClass(Employee.class)//加载映射类,有几个就加载几个。
			.addClass(Department.class)
			.buildSessionFactory();
	@Test
	public void testSave(){
		
		Session session = sessionFactory.openSession();		
		Transaction tx = null;
		try{
			tx = session.beginTransaction();
			//业务部分
			
			//---------
			tx.commit();
		}catch(Exception e){
			tx.rollback();
		}finally{
			session.close();
		}
	}


你可能感兴趣的:(JavaWeb)