Hibernate基础之配置文件和session

来源:互联网 发布:淘宝详情页下载 编辑:程序博客网 时间:2024/05/21 13:37

1.hibernate.cfg.xml常用配置

1.1.常用的属性


2.Session

2.1.hibernate程序的执行流程


2.2.不建议使用jdbcconnection操作数据库,而是通过session对象操作数据库。

2.3.session可以理解为操作数据库的对象,每个session都有一个与之对应的connection对象,一个connection对象不同时刻可以供多个session使用。

2.4.session的各种方法:save()update()delete()createQuery()

3.transaction(事物)

3.1.hibernate事物需要主动提交,也可以调用sessiondoWork()方法,方法传入Work接口的匿名实现类的实例(在实现接口Work的方法execute中实现自动提交)。

4.session的详解

4.1.如何获取session对象

4.1.1.openSession

4.1.2.getCurrentSession

1)如果是第二种方法需要在hibernate.cfg.xml中进行配置:

如果是本地事物(jdbc事物):

<property name=”hibernate_current_session_context_class”>thread</property>

如果是全局事物(jta事物):

<property name=”hibernate_current_session_context_class”>jta</property>

4.2.openSessiongeCurrentSession的区别

4.2.1.getCurrentSession在事物提交或者回滚后会自动关闭,而openSession需要手动关闭。如果使用openSession而没有手动关闭,多次连接后会导致连接池溢出的情况。

4.2.2.openSession每次使用都会创建新的session对象,而getCurrentSession则使用已存在的session对象。

5.hbm配置(对象-关系映射文档)

5.1.hibernate-mapping标签常用属性

<hibernate-mapping    schema = "schemaName"    catalog = "catalogName"    default-cascade = "cascade_style"  //联级的风格    default-access = "field|property|ClassName"  //访问策略    defalut-lazy = "true|false"  //加载策略    package = packagename/>

5.2.class标签常用属性

<class    name = "ClassName"    table = "tableName"    batch-size = "N"    where = "condition"    entity-name = "EntityName"/>


5.3.id标签(主键)常用属性

<id    name = "propertyName"    type = "typename">    <column = "column_name"/>    <length = "length"/>    <generator class = "generatorClass" /></id>

5.3.1.主键生成策略




0 0
原创粉丝点击