Hibernate学习笔记
2016-03-02 21:45
435 查看
一.常用配置文件
1.配置文件hibernate.cfg.xml
2.配置文件 类名.hbm.xml
例如有以下这个类:
配置文件Classes.hbm.xml如下:
每一个Session代表一个数据库连接,一般每次完成一个事务结束一次Session。
SessionFactory是进程级别的。
二,缓存
1.一级缓存。一级缓存是在Session中,每次get和save的时候都会在Session中缓存一份,在进行操作的时候如果一级缓存有需要操作的对象就操作一级缓存的对象,在Session close或者flush之后会对缓存和数据库进行同步,一级缓存的生命周期结束。
将对象放入缓存的方法:update,save,get
把对象清除出去的方法:evit,clear
2.二级缓存:二级缓存在SessionFactory中,可以使用Session的get和SessionFactory的list方法将数据放入二级缓存。使用人级缓存之前需要先进行相关的配置(见配置清单),需要二级缓存的对象需要配置。
二级缓存适合存放一些不常改变的数据。
提取二级缓存的方法:get ,iterator
(待续….)
1.配置文件hibernate.cfg.xml
hibernate的数据库和一些别的选项在这里配置,长用的有 <!-- 数据库的用户名 --> <property name="connection.username">root</property> <!-- 数据库的密码 --> <property name="connection.password">123</property> <!-- 数据库的驱动 --> <property name="connection.driver_class"> com.mysql.jdbc.Driver </property> <!-- 数据库的url --> <property name="connection.url"> jdbc:mysql://localhost:3306/test3 </property> <!-数据库的方言-> <property name="dialect"> org.hibernate.dialect.MySQLDialect </property> <!--是否显示sql语句--> <property name="show_sql">true</property> <!-- hbm2ddl.auto这个有四个选项 creat:启动的时候先删除表结构,再创建表结构 update:启动的时候同步数据库 create-drop:启动的时候创建表结构,关闭的时候删除表结构 validate: 只会和数据库中的表进行比较,不会创建新表,但是会插入新值 --> <property name="hbm2ddl.auto">update</property> <!-- 调用sessionFactory.getCurrentSession()得到的Session实际是储存在ThreadLocal中的 --> <property name="current_session_context_class">thread</property> <!--是否启用二级缓存--> <property name="cache.use_second_level_cache">true</property> <!--二级缓存提供者--> <property name="cache.provider_class"> org.hibernate.cache.EhCacheProvider </property> <!--加载类的映射文件--> <mapping resource="com/yuan/Classes.hbm.xml" />
2.配置文件 类名.hbm.xml
例如有以下这个类:
public class Classes { private Long cid; private String name; private String description; private Set<Student> students; public Long getCid() { return cid; } public void setCid(Long cid) { this.cid = cid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public Set<Student> getStudents() { return students; } public void setStudents(Set<Student> students) { this.students = students; } }
配置文件Classes.hbm.xml如下:
<!--需要映射的类的名字--> <class name="com.yuan.Classes" table="classes"> <!--主键--> <id name="cid" length="10" type="long"> <!--主键生成模式--> <generator class="increment"></generator> </id> <!--该类的属性--> <property name="description" length="20" type="java.lang.String"></property> <property name="name" length="20" type="java.lang.String"></property> <!--集合成员变量 cascade: all:所有情况下都进行级联操作。 delete:删除的时候进行级联操作 save-update:save和update时候进行级联操作 none:所有情况下都进行级联操作 set元素还有一个叫做table的元素,如果是many to many的,就会需要第三张表,table属性就是表的名字 --> <set name="students" cascade="save-update"> <!--key是set集合的外检,也就是students的外键--> <key> <column name="cid"></column> </key> <!--一对多,多对一,多对多 class:对应的类名 cocolumn:多对多时,需要的主键 --> <one-to-many class="com.yuan.Student"/> </set> </class>
每一个Session代表一个数据库连接,一般每次完成一个事务结束一次Session。
SessionFactory是进程级别的。
二,缓存
1.一级缓存。一级缓存是在Session中,每次get和save的时候都会在Session中缓存一份,在进行操作的时候如果一级缓存有需要操作的对象就操作一级缓存的对象,在Session close或者flush之后会对缓存和数据库进行同步,一级缓存的生命周期结束。
将对象放入缓存的方法:update,save,get
把对象清除出去的方法:evit,clear
2.二级缓存:二级缓存在SessionFactory中,可以使用Session的get和SessionFactory的list方法将数据放入二级缓存。使用人级缓存之前需要先进行相关的配置(见配置清单),需要二级缓存的对象需要配置。
二级缓存适合存放一些不常改变的数据。
提取二级缓存的方法:get ,iterator
(待续….)
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- 数据库链接字符串查询网站
- DB2实例管理
- DB2实例管理
- 保障MySQL数据安全的14个最佳方法
- mysql问答汇集
- 第三章 数据库备份和还原
- 创建一个空的IBM DB2 ECO数据库的方法
- Access 2000 数据库 80 万记录通用快速分页类
- 开通一个数据库失败的原因的和解决办法
- 一个简单的asp数据库操作类
- CentOS下DB2数据库安装过程详解
- EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)第1/2页
- sql2008 还原数据库解决方案
- Oracle 数据库自动存储管理-安装配置
- Oracle数据库执行脚本常用命令小结
- Oracle 数据库 临时数据的处理方法
- 数据库分页查询语句数据库查询
- 最近比较流行的数据库挂马