1.新建java工程项目
新建lib包用来存放从官网下载的Hibernate开发包
同时加入c3p0数据库连接池Jar包和jdbc驱动包,然后将所有jar包build path到工程
2.创建实体类和实体类表结构映射关系文件
映射文件和实体类在同一包下,命名规则是:类名.hbm.xml
3.配置主配置文件(数据库文件)
配置信息在源码中project下的etc中的hibernate.properties文件
配置SessionFactory,主要用于创建Session对象,来操作数据库。
主要配置有三部分:
1.数据库连接的信息
2.数据库可选项:
(1)是否打印hibernate生成的sql
(2)是否格式化输出sql
(3)实体类的映射文件与表结构不一致时,是否更新表结构
(4)c3p0数据库连接池的配置
3.映射文件的位置
4.创建一个Demo,测试环境配置是否成功
可以看到控制台先打印出hibernate生成的实体类对应的数据库表的sql,接着是向表中插入一条数据。
看下数据库的信息:
数据中的表已经创建好,同时新增了一条数据记录。
5.CURD操作
增加:save();
删除:delete();
查找:get();
修改:update();
package com.demo;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;
import com.model.Platform;
import com.util.HibernateUtil;
public class HibernateDemo1 {
// 增加
@Test
public void testSave() {
Platform p=new Platform();
p.setPlatformName("淘宝");
//通过工具类获取session对象,然后开启事务
Session session=HibernateUtil.openSession();
Transaction tx=session.beginTransaction();
//增加操作
session.save(p);
//事务提交
tx.commit();
//释放资源
session.close();
}
// 查找
@Test
public void testFind() {
Session session =HibernateUtil.openSession();
Transaction tx=session.beginTransaction();
//通过get方法,查找Platform实体类中,id为1的实体
Platform p=session.get(Platform.class, 1);
System.out.println(p);
//事务提交
tx.commit();
//释放资源
session.close();
}
// 修改
@Test
public void testUpdate() {
Session session=HibernateUtil.openSession();
Transaction tx=session.beginTransaction();
//先进行查询,再修改
Platform p=session.get(Platform.class, 1);
p.setPlatformName("天猫");
session.update(p);
//事务提交
tx.commit();
//释放资源
session.close();
}
// 删除
@Test
public void testDelete() {
Session session=HibernateUtil.openSession();
Transaction tx=session.beginTransaction();
//先查询,再删除
Platform p=session.get(Platform.class, 1);
session.delete(p);
//事务提交
tx.commit();
//释放资源
session.close();
}
//事务回滚
public void testSave2() {
Platform p=new Platform();
p.setPlatformName("闲鱼");
Session session=null;
Transaction tx=null;
try {
session=HibernateUtil.openSession();
tx=session.beginTransaction();
session.save(p);
tx.commit();
} catch (Exception e) {
tx.rollback();
}finally {
session.close();
}
}
}