Hibernate的CRUD以及Junit测试

发表于:2017-4-26 11:20

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:MRbie    来源:博客园

1 package com.bie.dao.impl;
2
3 import java.util.List;
4
5 import org.hibernate.Query;
6 import org.hibernate.Session;
7 import org.hibernate.Transaction;
8
9 import com.bie.dao.UserDao;
10 import com.bie.po.User;
11 import com.bie.utils.HibernateUtils;
12
13 /**
14 * @author BieHongLi
15 * @version 创建时间:2017年3月10日 下午1:35:27
16 *
17 */
18 public class UserDaoImpl implements UserDao{
19
20     @Override
21     public void insertUser(User user) {
22         Session session=null;
23         Transaction tx=null;
24         try {
25             //获取session
26             session=HibernateUtils.getSession();
27             //开启事务
28             tx=session.beginTransaction();
29             //插入即保存
30             session.save(user);
31         } catch (Exception e) {
32             throw new RuntimeException(e);
33         }finally{
34             //提交事务
35             tx.commit();
36             //关闭session
37             session.close();
38         }
39
40     }
41
42     @Override
43     public void updateUser(User user) {
44         Session session=null;
45         Transaction tx=null;
46         try {
47             session=HibernateUtils.getSession();
48             tx=session.beginTransaction();
49             session.update(user);
50         } catch (Exception e) {
51             throw new RuntimeException(e);
52         }finally{
53             //提交事务
54             tx.commit();
55             //关闭事务
56             session.close();
57         }
58
59     }
60
61     @Override
62     public User selectUserId(int id) {
63         //获取session
64         Session session=null;
65         //事务
66         Transaction tx=null;
67         try {
68             //获取session
69             session=HibernateUtils.getSession();
70             //开启事务
71             tx=session.beginTransaction();
72
73             return (User)session.get(User.class, id);
74         } catch (Exception e) {
75             throw new RuntimeException(e);
76         }finally{
77             //提交事务
78             tx.commit();
79             //关闭session
80             session.close();
81         }
82     }
83
84     @Override
85     public List<User> selectAll() {
86         //session
87         Session session=null;
88         //事务
89         Transaction tx=null;
90         try {
91             //获取session
92             session=HibernateUtils.getSession();
93             //开启事务
94             tx=session.beginTransaction();
95             //HQL语句
96             Query q=session.createQuery("from User");
97
98             List<User> list=q.list();
99             return list;
100         } catch (Exception e) {
101             throw new RuntimeException(e);
102         }finally{
103             //提交事务
104             tx.commit();
105             //关闭session
106             session.close();
107         }
108     }
109
110     @Override
111     public List<User> selectAll(String name) {
112         //session
113         Session session=null;
114         //事务
115         Transaction tx=null;
116         try {
117             //获取session
118             session=HibernateUtils.getSession();
119             //开启事务
120             tx=session.beginTransaction();
121             //HQL语句
122             Query q = session.createQuery("from User user where user.name=? ");
123             //注意:参数索引从0开始
124             q.setString(0, name);
125
126             return q.list();
127         } catch (Exception e) {
128             throw new RuntimeException();
129         }finally{
130             //提交事务
131             tx.commit();
132             //关闭session
133             session.close();
134         }
135     }
136
137     @Override
138     public List<User> selectPage(int index, int count) {
139         //session
140         Session session=null;
141         //事务
142         Transaction tx=null;
143         try {
144             //获取session
145             session=HibernateUtils.getSession();
146             //开启事务
147             tx=session.beginTransaction();
148             //HQL查询
149             Query q = session.createQuery("from User ");
150             //设置分页参数
151             q.setFirstResult(index);//查询起始行
152             q.setMaxResults(count);//查询返回的行数
153
154             return q.list();
155         } catch (Exception e) {
156             throw new RuntimeException();
157         }finally{
158             //提交事务
159             tx.commit();
160             //关闭session
161             session.close();
162         }
163     }
164
165     @Override
166     public void deleteUser(int id) {
167         Session session=null;
168         Transaction tx=null;
169         try {
170             session=HibernateUtils.getSession();
171             tx=session.beginTransaction();
172             //先根据id查询出用户的信息再删除
173             Object obj=session.get(User.class, id);
174             if(obj!=null){
175                 session.delete(obj);
176             }
177         } catch (Exception e) {
178             throw new RuntimeException();
179         }finally{
180             //提交事务
181             tx.commit();
182             //关闭session
183             session.close();
184         }
185     }
186
187
188 }
  8:最后一步,完成测试。源码如下所示:
1 package com.bie.test;
2
3 import java.util.List;
4
5 import org.junit.Test;
6
7 import com.bie.dao.UserDao;
8 import com.bie.dao.impl.UserDaoImpl;
9 import com.bie.po.User;
10
11 /**
12 * @author BieHongLi
13 * @version 创建时间:2017年3月10日 下午2:34:48
14 *
15 */
16 public class UserCRUD {
17
18     private UserDao dao=new UserDaoImpl();
19
20     @Test
21     public void insertUser(){
22         dao.insertUser(new User("曹操","111","111111","111111@163.com"));
23
24     }
25
26     @Test
27     public void updateUser(){
28         User user=new User();
29         user.setId(1);
30         user.setName("刘备222");
31
32         dao.updateUser(user);
33     }
34
35     @Test
36     public void deleteUser(){
37         dao.deleteUser(30);
38     }
39
40     @Test
41     public void selectUserId(){
42         //根据用户的编号进行查询
43         User user=dao.selectUserId(1);
44         System.out.println(user);
45     }
46
47     @Test
48     public void selectUser(){
49         //查询用户的所有信息
50         List<User> list = dao.selectAll();
51         System.out.println(list);
52     }
53
54     @Test
55     public void selectUserName(){
56         //根据用户姓名查询信息
57         List<User> list=dao.selectAll("李四");
58         System.out.println(list);
59     }
60
61     @Test
62     public void selectPage(){
63         //分页查询,第一个参数是起始行,第二个参数是每页的个数
64         List<User> list=dao.selectPage(0, 5);
65         System.out.println(list);
66     }
67 }
  运行效果如下所示:
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号