首页 » Java » Hibernate学习

Hibernate学习

原文 http://blog.csdn.net/qq_40132994/article/details/78056000

2017-09-21 22:20:11阅读(371)

Hibernate.cfg.xml常用配置

hibernate.show_sql :是否把hibernate运行时的sql语句输出到控制台,便于编码阶段的测试 hibernate.format_sql 输出到控制台的sql语句是否进行排版,便于阅读,一般设为true hbm2ddl.auto 帮助java代码生成数据库脚本,进而生成具体的表结构 (如果表存在,create:删除原来的表创建新表 update 在原表之上进行更新,create-drop先创建新表再删除原表 validate 如果与原来的表结构不同,不会创建新表) hibernate.default_schema 在创建的数据库前面加上前缀,比如:当标签之间填hibernate时,数据库名为hibernate.XXX hibernate.dialect 配置hibernate数据库方言,hibernate可针对不同的数据库进行优化。

session简介
Hibernate学习

解析:首先创建配置对象(configuration对象new Configuration().configure()还要有服务注册对象SeviceRegistry对象,new SeviceRegistryBuilder()…)来读去配置文档,获取配置对象后用它来创建sessionfactory对象,该对象会读取对象关系映射文件(XXX.hbm.xml),之后创建session对象,相当于JDBC中的connection,即操作数据库对象
执行session的方法,每次执行方法时要开启事物,执行完方法之后要提交事务,最后关闭session

重点内容
session不建议直接使用jdbc的connection操作数据库,而要通过session操作数据库
每个session对应一个connection,一个connection不同时刻供多个session使用。
调用session的方法,将对象保存在关系数据库中

save() update() delete()

createQuery()

transaction简介
    hibernate对数据库的操作是封装到事物当中,并且非自动提交,所以用session保存对象时,如果不开启事务,但却手工提交事务,对象并不会真正保存在数据库中。(表现为没有插入数据)

jdbc自动提交事务,

如何获得session对象

openSession方法
需要手动关闭,如果没有关闭多次之后导致连接池溢出。
每次创建新的session对象 getCurrentSession方法
自动关闭,
使用现有的session对象(相当于单例模式)
需要在hibernate.cfg.xml中进行配置
本地事物(jdbc事务)
<property name="hibernate.current_session_context_class">thread</property>

全局事务(jta事务)

<property name="hibernate.current_session_context_class">jta</property>

详情

小知识
可以用session的doWork方法,重写Work()来打印出connection.hashCode可以比较session是否为 同一个session对象。如果没有关闭session有多个hashcode(表示多个session将导致溢出)

session.doWork(new Work(){
    public void execute(Connection connection) throws SQLException{
    System.out.print(connection.hashCode())};
});

hbm配置文件常用设置
<class />标签中的属性
name 映射的类名
table 映射的数据库中的表名
batch-size=‘n’ 一次抓取多少条记录
where=’condition’ 设置抓取记录的条件
entity-name=” 同一个类映射多个表

<id ></id>

id标签的属性有:
name映射的属性
type属性的类型
column 映射成数据库后子段的名称
length 映射成数据库后子段的长度
``
<generator class="generatorClass"

Hibernate学习

详情

最新发布

CentOS专题

关于本站

5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!

小提示

按 Ctrl+D 键,
把本文加入收藏夹