1、Hibernate Tools for Eclipse Plugins
hibernate被jboss收购 下载最新的也可以
到http://tools.jboss.org/downloads/ 下载包(Artifacts下面)
下载好包后,在eclipse->help->install new software location选择下载好的包
只选择hibernate tools安装 安装过程会提示认证问题 点OK就行(可能是不同的eclipse版本)
2、下载hibernate.jar包 导入hibernate-core.jar中的dtd(configuration mapping)文件
有提示功能
key -//Hibernate/Hibernate Configuration DTD 3.0//EN <public ID>
key -//Hibernate/Hibernate Mapping DTD 3.0//EN <public ID>
3、session的获得方式
A、SessionFactory.openSession()
B、getCurrentSession() 需要在cfg.xml中配置
本地事务(jdbc事务) <property name="hibernate.current_session_context_class">thread</property>
全局事务(jta事务) <property name="hibernate.current_session_context_class">jta</property> (用的较少)
A:每次回创建新的对象 / 不会自动关闭,多次未关闭可能会导致连接池的溢出 <关闭不等于对象销毁,是释放到连接池中>
B:使用现有的session对象(类似单例) / 会在提交和事务回滚自动关闭
3、报错记录
A、出现报错信息 near 'type=myisam' 报错:一般是数据库方言问题 较高版本的hibernate对MySQL高版本支持
org.hibernate.dialect.MySQLDialect 改成org.hibernate.dialect.MySQL57Dialect或者org.hibernate.dialect.MySQL5Dialect
B、报错信息有 'useSSL=true' 'use=false' 应该是要设置是否使用ssl传输数据库
因为高版本的MySQL支持SSL
C、hibernate对数据库的操作都封装在事务中,默认是非自动提交,使用session如果没有开启事务,手动提交事务,对象并不会真正保存到数据库;
如果想让hibernate像jdbc那样自动提交事务,必须调用session对象的doWork(方法),获得jdbc的connection后设置为自动提交模式
最后调用session.flush()<!不推挤>
4、hibernate的CURD
save()
update()
delete()
get()/load()查询单个记录
区别:get 不考虑缓存情况,会直接发送sql语句,返回持久化对象 / 数据库中不存在这个对象是 返回是null
load 方法调用后返回一个代理对象,该对象只保存实体对象的ID,用到非主键属性时才会发送sql语句 / 数据库中不存在,会抛java.hibernate.ObjectNotFindException
共同学习,写下你的评论
评论加载中...
作者其他优质文章