持久化是将程序中数据在瞬时状态和持久状态间转化的机制。
Hibernate就是在JDBC的方式上进行封装以简化JDBC方式繁琐的编码工作。
我们在编写程序的时候,以面向对象的方式处理数据;保存数据的时候,却以关系型数据库的方式存储,所以,客观上我们需要一种能在两者间进行转换的机制,称为对象-关系映射机制(ORM)。
使用Hibernate的基本步骤
1需要的jar包
使用myeclipse时,不用自己下载,右键项目-myeclipse中添加
2Hibernate配置文件“hibernate.cfg.xml”
用myeclipse添加jar包后会提示添加
dialect参数是必须配置的,用于配置Hibernate使用的不同数据库类型;show_sql参数为true,则程序运行时在控制台输出执行的SQL语句;数据库表和实体的映射信息在另外的映射文件中定义,但需要在配置文件中声明。
3实体类和映射文件
实体类实现java.io.Serializable接口;实体类映射到数据库哪个表,以及哪个属性对应到数据库表的哪个字段,这些在映射文件中配置。
7个步骤
1读取配置文件
2创建SessionFactory
3打开session
4开始一个事务
5持久化操作
6提交操作
7关闭事务
实际操作
1先在myeclipse创建一个java项目,然后右键选择MyEclipse->Add Hibernata Capabilities
2配置相关信息,添加数据库连接时,第一次要自己手动输入,以后可以使用DB Driver选择已经使用过的数据库连接
3第二步finish后可以看看hibernata.cfg.xml,右上角properties可以设置一些属性,比如show_sql,可以在程序运行时在控制台输出执行的SQL语句
4利用反向工程完成映射文件。在DB Browser(Window->show view->other)中,选择数据库,如果第一次用,右键->new新建。
创建完成后可以选择数据库
右键数据库表选择Hibernate Reverse Engineering,然后勾选头两项,下一步时id generator选择native,生成了实体类和映射文件
到这里,完成了“3个准备”
然后是“7个步骤”
编写测试文件
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.hittopthink.core.entity.Teacher;
public class HibTest1 {
public static void main(String[] args)
{
//读取配置文件
Configuration conf=new Configuration().configure();
//创建sessionfactory
SessionFactory sf=conf.buildSessionFactory();
Session session=sf.openSession();//打开session
Transaction tx=null;
try{
tx=session.beginTransaction();//开始一个事务
//持久化操作
Teacher teacher=new Teacher();
teacher.setTId(56);
teacher.setTUser("don");
teacher.setTPswd("123");
teacher.setTName("mrxia");
session.save(teacher);
tx.commit();//提交事务
}catch(Exception e)
{
if(null!=tx){tx.rollback();}
e.printStackTrace();
}finally{
session.close();
}
}
}
运行,添加成功