紧接着上一篇hibernate的配置,我们来练习hibernate的保存操作;
上一篇《hibernate简介及配置》中我们创建好了UserBasic数据库表实体类。并做了相关的hibernate配置,现在我们来写一个测试用例来进行hibernate保存操作的练习。
第一步:编写测试用例
1.在src目录下创建包com.ballchen.demo;
2.在com.ballchen.demo包下创建测试用例类HibernateDemo.java;
3.在HibernateDemo类中创建testSave方法;
4.添加junit注解配置。
第二步:编写保存代码
/*
1.首先加载hibernate的核心配置文件hibernate.cfg.xml。
这里我的核心配置文件在src目录下,若是在其它目录,可以在么写
Configuration cfg = new Configuratioin().config("xxx.xxx.xx.hibernate.cfg.xml");
*/
Configuration cfg = new Configuration().config();
/*
2.获得SessionFactory对象
*/
SessionFactory sessionFactory = cfg.buildSessionFactory();
/*
3.获得session对象
*/
Session session = sessionFactory.getCurrentSession();
/*
4.开启事务
*/
session.beginTransaction();
/*
5.创建UserBasic对象(瞬时态)
这里我在UserBasic.hbm.xml中配置了主键策略,所以在设置瞬时态对象
属性值的时候不需要再设置ID的值
*/
UserBasic userBasic = new UserBasic();
userBasic.setUserName("小明");
userBasic.setPassword("123456");
userBasic.setAddress("地球");
userBasic.setDate(new Date());
/*
6.通过session执行保存操作
*/
session.save(userBasic);
/*
7.提交事务,保存结束
*/
session.getTransaction().commit();
完整的代码截图:
第三步:执行testSave()测试用例
在testSave()方法上右键,debug。等待执行结果,这个时候如果报关于junit的错误,有可能是没有引入hamcrest-core-1.3.jar包。
运行结果如下:
看到绿条,说明运行成功,可以看到hibernate执行的sql语句。
这篇文章我们做了一个hibernate最基本的保存操作,下一篇介绍hibernate的级联保存操作。
ps:因为我在hibernate的核心配置文件中配置了hibernate.hbm2ddl.auto为update,hibernate自动创建了表,所以没有写sql脚本,但在实际的工作中,不建议让hibernate自动生成表,建议编写sql脚本来创建你的表结构,然后我们用idea或者myeclipse所带的hibernate工具根据表来创建你的实体类和配置文件。这个在后面的《hibernate最佳实践》一文中会讲到。