Hibernate总结2 API和配置文件
2016-10-16 20:08
302 查看
1,Configuration 配置
获取config配置文件的方法
Configuration cfg = new Configuration();
cfg.下面的方法
configure()
configure(String resource)
添加映射文件,映射文件为类名.hbm.xml配置文件,用于配置类的成员变量和表列的相匹配关系
addResource(String resource) 导入一个指定位置的映射文件
载入类,根据类.Class来载入类名
addClass(Class clazz) 导入与指定类同一个包中的以类名为前缀,后缀为.hbm.xml的映射文件
生成sessionFacotry
buildSessionFactory()
2,SessionFactory Session工厂
获取Session,关闭Session,此关闭session是指将session返还给session工厂
openSession()
getCurrentSession()
close()
3,Session 很重要的一个对象
操作对象的方法
save(Object)
update(Object)
delete(Object)
查询的方法
createQuery(String) --> Query
createCriteria(Class)
管理事务的方法
beginTransaction() --> Transaction
getTransaction() --> Transaction 获取当前Session中关联的事务对象
其他的方法
...
Transaction 事务
commit()
rollback()
Query 查询
list() 查询一个结果集合。
uniqueResult() 查询一个唯一的结果,如果没有结果,则返回null,如果结果有多个,就抛异常。
4,Hibernate主配置文件
1,数据库信息
<property ...>
方言、JdbcUrl、驱动、用户名、密码
2,导入映射文件
<mapping ...>
3,其他配置
<property ...>
show_sql 显示生成的SQL语句
format_sql 格式化生成的SQL语句
hbm2ddl.auto 自动生成表结构
hibernate.hbm2ddl.auto 自动生成表结构
5,主键类型
如果主键是数字的话,类建议使用包装类型,比如说Integer类型来代替int类型
表中的主键常用<generator class="native" />来作为主键的生成规则,因为这个匹配大部分数据库,包括有自动增长(mssql,mysql)的和无自动增长通过序列的(oracle)
6,插入集合类型的
常见的集合有Set(hashset),list(arraylist),array,map(hashmap)等,在xxx.hbm.xml配置时,具体的配置如下
注意:使用集合属性时,一定要使用接口,而不能声明为具体的实现类。因为经过Session操作后,集合就变成了Hibernate自己的集合实现类。
7,映射关联关系
多对一关系
一对多关系
多对多关系
8,映射关系简单图鉴
一对多(Set)
<Set name="">
<key column=""/> (写对方类的表达此关系的外键列名)
<one-to-many class=""/>
</Set>
多对一
<many-to-one name="" class="" column="" />
多对多<set>
<set name="" talbe="">
<key column=""/> (引用自己主键)
<many-to-many class="" column/>(引用对方主键)
</set>
一对一(基于外键的有外键方)
<many-to-one name="" class="" unique="true" />
一对一(基于外键的无外键方)
<one-to-one name="" class="" property-ref=""/>
获取config配置文件的方法
Configuration cfg = new Configuration();
cfg.下面的方法
configure()
configure(String resource)
添加映射文件,映射文件为类名.hbm.xml配置文件,用于配置类的成员变量和表列的相匹配关系
addResource(String resource) 导入一个指定位置的映射文件
载入类,根据类.Class来载入类名
addClass(Class clazz) 导入与指定类同一个包中的以类名为前缀,后缀为.hbm.xml的映射文件
生成sessionFacotry
buildSessionFactory()
2,SessionFactory Session工厂
获取Session,关闭Session,此关闭session是指将session返还给session工厂
openSession()
getCurrentSession()
close()
3,Session 很重要的一个对象
操作对象的方法
save(Object)
update(Object)
delete(Object)
查询的方法
createQuery(String) --> Query
createCriteria(Class)
管理事务的方法
beginTransaction() --> Transaction
getTransaction() --> Transaction 获取当前Session中关联的事务对象
其他的方法
...
Transaction 事务
commit()
rollback()
Query 查询
list() 查询一个结果集合。
uniqueResult() 查询一个唯一的结果,如果没有结果,则返回null,如果结果有多个,就抛异常。
4,Hibernate主配置文件
1,数据库信息
<property ...>
方言、JdbcUrl、驱动、用户名、密码
2,导入映射文件
<mapping ...>
3,其他配置
<property ...>
show_sql 显示生成的SQL语句
format_sql 格式化生成的SQL语句
hbm2ddl.auto 自动生成表结构
hibernate.hbm2ddl.auto 自动生成表结构
5,主键类型
如果主键是数字的话,类建议使用包装类型,比如说Integer类型来代替int类型
表中的主键常用<generator class="native" />来作为主键的生成规则,因为这个匹配大部分数据库,包括有自动增长(mssql,mysql)的和无自动增长通过序列的(oracle)
6,插入集合类型的
常见的集合有Set(hashset),list(arraylist),array,map(hashmap)等,在xxx.hbm.xml配置时,具体的配置如下
注意:使用集合属性时,一定要使用接口,而不能声明为具体的实现类。因为经过Session操作后,集合就变成了Hibernate自己的集合实现类。
7,映射关联关系
多对一关系
<!-- department属性,表达的是本类与Department的多对一 2 class属性:关联的实体类型 3 column属性:外键列(引用关联对象的表的主键) 4 --> 5 <many-to-one name="department" class="Department" column="departmentId"></many-to-one>
1 <!-- department属性,表达的是本类与Department的多对一 2 class属性:关联的实体类型 3 column属性:外键列(引用关联对象的表的主键) 4 --> 5 <many-to-one name="department" class="Department" column="departmentId"></many-to-one>
一对多关系
多对多关系
<!-- name对应于对象中多的那个集合的属性值 ,table对饮两个对对多的表名,inverse对应是否相互通知对方--> 2 <set name="teachers" table="teacher_student" inverse="true"> 3 <!-- key对应于对象在对应关系表中的主键 --> 4 <key column="stu_id"></key> 5 <!-- class对应与多对多另外一方的类名,column对应在多对多表中,另外一个类的主键对应的值 --> 6 <many-to-many class="Teacher" column="te_id"></many-to-many> 7 </set>
1 <!-- name对应于对象中多的那个集合的属性值 ,table对饮两个对对多的表名,inverse对应是否相互通知对方--> 2 <set name="teachers" table="teacher_student" inverse="true"> 3 <!-- key对应于对象在对应关系表中的主键 --> 4 <key column="stu_id"></key> 5 <!-- class对应与多对多另外一方的类名,column对应在多对多表中,另外一个类的主键对应的值 --> 6 <many-to-many class="Teacher" column="te_id"></many-to-many> 7 </set>
8,映射关系简单图鉴
一对多(Set)
<Set name="">
<key column=""/> (写对方类的表达此关系的外键列名)
<one-to-many class=""/>
</Set>
多对一
<many-to-one name="" class="" column="" />
多对多<set>
<set name="" talbe="">
<key column=""/> (引用自己主键)
<many-to-many class="" column/>(引用对方主键)
</set>
一对一(基于外键的有外键方)
<many-to-one name="" class="" unique="true" />
一对一(基于外键的无外键方)
<one-to-one name="" class="" property-ref=""/>
相关文章推荐
- Hibernate总结2 API和配置文件
- hibernate 各种映射的配置文件总结
- Hibernate总结—hibernate配置文件
- SpringMVC_v02中的总结(web项目、java项目中引入Config.properties,加载hibernate映射文件的配置的区别)
- Hibernate概述、入门、配置文件详解、四大API详解
- Hibernate相关配置文件、映射文件案例、工具类、总结相关
- hibernate第一天——分页显示,数字类型互相转换intvalue(crl+h),hibernate的配置与API,建立表结构,final类型,映射文件,主键
- 第32天(就业班) hibernate框架概述、ORM概念、hibernate第一个实例、api讲解、查询方式、主配置文件、映射配置、主键映射
- Hibernate框架基础——Hibernate API及Hibernate主配置文件
- 项目总结SpringMVC+hibernate框架 原理(MVC) 模块配置文件(4)
- javaEE 用户、部门、角色、权限实体的关系设计与hibernate映射配置文件关系总结
- Hibernate框架(一)文件配置、核心API、对象状态详解
- Hibernate 初相识(一)Hibernate API 详解,配置文件,映射文件详解。
- Hibernate的核心配置文件和API
- hibernate之概述,入门案例(配置文件,api)(01)
- Hibernate 配置文件与映射文件 总结
- Hibernate总结(一)--之hibernate配置文件
- hibernate个人总结之XML 配置文件
- hibernate笔记之配置文件和映射文件和主要api示例
- 总结:NHibernate——配置文件hibernate.cfg.xml