1、首先在Eclipse中新建java工程
2、加入需要的jar包
包括hibernate required jar包
要启用ehcache二级缓存的话,加入ehcache相关jar包
加入日志相关jar包log4j啥的
当然作为一个orm框架,还需要数据库jdbc驱动,大概就是这些了
3、新建实体类,然后可以使用eclipse 的hibernate tools插件,来生成hbm.xml文件,例如下面就是3个实体类和3个hbm.xml文件
4、新建hibernate配置文件hibernate.cfg.xml
-
<?xml version="1.0" encoding="UTF-8"?>
-
<!DOCTYPE hibernate-configuration PUBLIC
-
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
-
"">
-
<hibernate-configuration>
-
<session-factory>
-
<!-- 数据库连接配置 -->
-
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
-
<property name="hibernate.connection.url">jdbc:mysql:///test</property>
-
<property name="hibernate.connection.username">root</property>
-
<property name="hibernate.connection.password">password</property>
-
-
<!-- 数据库方言设置 -->
-
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
-
<!-- 事务的隔离级别 -->
-
<!--
-
1. READ UNCOMMITED
-
2. READ COMMITED
-
4. REPEATABLE READ
-
8. SERIALIZEABLE
-
-->
-
<property name="hibernate.connection.isolation">2</property>
-
-
<!-- 是否打印sql以及格式化sql语句 -->
-
<property name="hibernate.show_sql">true</property>
-
<property name="hibernate.format_sql">true</property>
-
-
<!-- hibnernate帮忙生成数据表的策略:update会按照实体类更新表接口 -->
-
<!--
-
create : 会根据 .hbm.xml 文件来生成数据表, 但是每次运行都会删除上一次的表 ,重新生成表, 哪怕二次没有任何改变
-
create-drop : 会根据 .hbm.xml 文件生成表,但是SessionFactory一关闭, 表就自动删除
-
update : 最常用的属性值,也会根据 .hbm.xml 文件生成表, 但若 .hbm.xml 文件和数据库中对应的数据表的表结构不同, Hiberante 将更新数据表结构,但不会删除已有的行和列
-
validate : 会和数据库中的表进行比较, 若 .hbm.xml 文件中的列在数据表中不存在,则抛出异常
-
-->
-
<property name="hibernate.hbm2ddl.auto">update</property>
-
-
<!-- 启用二级缓存和查询缓存 -->
-
<property name="hibernate.cache.use_second_level_cache">true</property>
-
<property name="hibernate.cache.use_query_cache">true</property>
-
-
<!-- 二级缓存 -->
-
<property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
-
-
<!-- Session 对象的生命周期与本地线程绑定 -->
-
<property name="hibernate.current_session_context_class">thread</property>
-
-
<!-- 映射文件 -->
-
<mapping resource="com/blank/hibernate/entity/Customer.hbm.xml"/>
-
<mapping resource="com/blank/hibernate/entity/Region.hbm.xml"/>
-
<mapping resource="com/blank/hibernate/entity/Department.hbm.xml"/>
-
-
<class-cache usage="read-write" class="com.blank.hibernate.entity.Customer"/>
-
<class-cache usage="read-write" class="com.blank.hibernate.entity.Region"/>
-
<class-cache usage="read-write" class="com.blank.hibernate.entity.Department"/>
-
-
</session-factory>
-
</hibernate-configuration>
5、偷懒,从hibernate下载的压缩包里面把ehcache.xml和log4j.properties文件复制到src目录下
6、然后就可以写测试代码了
基本上是这个步骤来写测试代码
1)、获取 Configuration 对象
2)、获取 SessionFactory 对象
以上两步Hibernate5.0是这样的
-
final StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
-
.configure() // configures settings from hibernate.cfg.xml
-
.build();
-
sessionFactory = new MetadataSources( registry ).buildMetadata().buildSessionFactory();
而Hibernate4.0则是这样的
-
Configuration configuration = new Configuration()
-
.configure("hibernate.cfg.xml");
-
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
-
.applySettings(configuration.getProperties()).build();
-
SessionFactory sessionFactory = configuration
-
.buildSessionFactory(serviceRegistry);
3)、获取 Session,打开事务
-
session = sessionFactory.getCurrentSession();
-
transaction = session.beginTransaction();
4)、用面向对象的方式操作数据库
例如,save啦,get啦、find啦什么的
5)、关闭事务,关闭 Session
-
transaction.commit();
-
session.close();
-
sessionFactory.close();
阅读(1465) | 评论(0) | 转发(0) |