使用Hibernate执行持久化操作需要的七个步骤
Hibernate中一个 test 类中的 Configuration conf = new Configuration().configure ; 这行代码是起到什么作用的呢? 就是用来获取 Hibernate.cfg.xml 中信息的 .
SessionFactory sf = conf.buildSessionFactory() 这行就是用来获取一个连接工厂, 类似于我们JDBC类中的
dbConnection= DriverManager.getConnection(URL,USER,PSAAWORD) , 就是创建一个dbConnection .
Session session = sf.openSession(); 就相当于获得一个连接 .
Transaction tx = session.beginTransaction() ; 开始事务
session.save(Object) 持久化操作 就是以一个对象的形式把数据放进了数据库中, 从程序员的角度看, 一切皆对象.
而里面的Object则不一定, 也可以是其它的参数.
tx.commit() 提交事务 ;
tx.rollback() 假入提交失败的话, 会将事务回滚, 前面的commit()不成立, 避免数据的错误.
session.close(); 关闭session .
写完后, 试了下, 在这里创建了一个JavaProject , 之后创建了一个Test数据库, 之中只有一个person , 记录 user 的基本信息 , 之后在项目中加入Hibernate 组件,在Hibernate的配置之中, 我通常使用,Myeclipse Database Explorer 创建好的 数据库, 那样的话, 有关要使用的数据库相关信息 在选中Myeclipse Database Explorer 里面的DataSource 名之后就OK 了 , 不需要我们在继续配置了 .
这样之后 Hibernate.cfg.xml 文件就基本弄好了, 之后我们要弄弄对应实体类的映射文件 hbm.xml 了 , 这个其实在Myeclipse Database Explorer中 就能够搞定 , 右键选中要映射的表, 在弹出的下拉列表中选择 Hibernate Reverse Engineering 之后 ,弹出的对话框会有多种配置供我选择, 我只需要在其中选择三种:
第一个选择那就是 生成的映射文件和pojo 类要存放的区域( 也就是要放在那个包中 ) ;
第二个选择就是 是否要生成hbm.xml 文件? 生成, 好 , 那选 勾 ;
第三个选择就是 是否要生成POJO类? 生成? 好 , 同样上面的操作.
finish 之后 , 我创建的entity 包中就生成 对应数据库表 person 的 POJO类 Person 类, 里面有这和 person表中同样个数, 同样名称, 同样类型的 属性, 及若干的构造方法 ( 至少是2个 , 一个默认的构造方法 , 一个包含了所有属性的构造方法, 还有在表中是 not null 字段的属性 组成的构造方法) 之后还有类中所有属性的setter getter 方法 ;
还有一个Person.hbm.xml 文件 是记录了POJO类中的那个属性和 Person 表中哪列对应的 .
至此, 完成了2部 ,最后就是一个HibernateTest 类的编写了 .
首先需要有一个void main() 然后在类中另写一个方法 , 内容如下:
public void addTest() {
SessionFactory sf = null;
Session session = null;
Transaction tx = null;
try {
Configuration cf = new Configuration().configure();
sf = cf.buildSessionFactory();
session = sf.openSession();
tx = session.beginTransaction();
Person person = new Person();
person.setUserName("joyhouse");
person.setPassword("pig");
session.save(person);
tx.commit();
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
tx.rollback();
} finally {
session.close();
}
}
Configuration cf = new Configuration().configure();
这里调用了 Hibernate.cfg.xml 文件 .