Hibernate增删改查数据库之一DAO类

[size=large]
/*使用了自己封装的HibernateUtils工具类(该类详见之二篇日志)*/
public class SessionTest extends TestCase {
/**
* 1.DESC--利用save()方法插入一条数据到数据库
*/
public void testSave(){
Session session = null;
User user = null;
//实例化POJO对象
user = new User();//@@@此时的user对象为瞬时对象状态@@@
user.setName("xxx");
user.setPassword("asb");
user.setCteateTime(new Date());
try{
//获取session对象(调用HibernateUtils工具类)
session=HibernateUtils.getSession();
//开启事物
HibernateUtils.openTransaction();
//调用save(object)方法将持久化对象保存到数据库中(插入数据)
session.save(user);//@@@此时的user对象为持久化对象状态@@@
user.setName("update");
session.update(user);//(更新数据)
//提交事物
HibernateUtils.commitTransaction();
}catch(Exception e){
//回滚事物
HibernateUtils.rollbackTransation();
e.printStackTrace();
}finally{
//关闭session对象
HibernateUtils.closeSession(session);
}
}
/**
* 2.DESC--利用get()方法按主键查询数据库中的一条记录
* 总结:get()不是延迟加载数据,当数据库无匹配数据时候,返回NULL
* 技巧:判断是否查到指定主键的数据,只需要判断User对象是否为空
*/
public void testGet(){
Session session = null;
//创建session对象
session = HibernateUtils.getSession();
//开启事物
HibernateUtils.openTransaction();
//调用get()方法(按指定ID)
User user = (User)session.get(User.class,"402880d51c6b345e011c6b34608d0001");
//提交事物
HibernateUtils.commitTransaction();
if(user!=null){
System.out.println("user.name=="+user.getName());
}else{
System.out.println("数据库中无与之匹配的数据!");
}
//关闭Session对象
HibernateUtils.closeSession(session);
}
/**
* 3.DESC--利用load()方法按主键查询数据库中的一条记录
* 总结:get()是延迟加载数据,当数据库无匹配数据时候,返回ObjectNotFoundException异常
* 技巧:判断是否查到指定主键的数据,只需要看是否抛出异常
*/
public void testLoad(){
Session session = null;
try{
//创建session对象
session = HibernateUtils.getSession();

//调用load方法(按指定ID)
User user = (User)session.load(User.class,"402880d51c6b345e011c6b34608d0001");
//提交事物
HibernateUtils.commitTransaction();
System.out.println("user.name=="+user.getName());
}catch(Exception e){
System.out.println("数据库中无与之匹配的数据!");
}finally{
//关闭Session对象
HibernateUtils.closeSession(session);
}
}
/**
* 3.DESC--利用delet()方法按主键删除数据库中的一条记录
* 技巧:先用load()查出该条记录,然后调用delete()删除
* 重点:要开启提交事物,否则删除不了
*/
public void testDelete(){
Session session = null;
try{
//创建session对象
session = HibernateUtils.getSession();
//开启事物
HibernateUtils.openTransaction();
//调用load方法(按指定ID)
User user = (User)session.load(User.class,"402880d51c6b345e011c6b34608d0001");
session.delete(user);
//提交事物
HibernateUtils.commitTransaction();
}catch(Exception e){
System.out.println("删除失败-->数据库中无与之匹配的数据!");
}finally{
//关闭Session对象
HibernateUtils.closeSession(session);
}
}
}
[/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值