博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot整合Hibernate
阅读量:4549 次
发布时间:2019-06-08

本文共 3045 字,大约阅读时间需要 10 分钟。

编写配置文件

1 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
true
18
19
update
20
21
22
23
24
25
io.guangsoft.pojo
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

编写实体类

1 @Entity 2 @Table(name="t_user") 3 public class User implements Serializable { 4     @Id 5     @GeneratedValue(strategy=GenerationType.IDENTITY) 6     @Column(name="id") 7     private Integer id; 8     @Column(name="username") 9     private String username;10     //...set、get方法11 }

dao层编写

1 @Repository 2 public class UserDaoImpl implements UserDao { 3     @Autowired 4     private HibernateTemplate hibernateTemplate; 5     @Override 6     public void insertUser(User user) { 7         this.hibernateTemplate.save(user); 8     } 9     @Override10     public void updateUser(User user) {11         this.hibernateTemplate.update(user);12     }13     @Override14     public void deleteUser(User user) {15         this.hibernateTemplate.delect(user);16     }17     @Override18     public User selectUserById(Integer id) {19         return this.hibernateTemplate.get(User.class, id);20     }21 }

测试代码

1 @RunWith(SpringJUnit4ClassRunner.class) 2 @ContextConfiguration("classpath:applicationContext.xml") 3 public class UserDaoImplTest { 4     @Autowired 5     private UserDao userDao; 6     @Test 7     @Transactional//测试类对事物提交方式默认是回滚 8     @Rollback(false)//取消自动回滚 9     public void testInsertUser() {10         User user = new User();11         user.setUsername("呵呵");12         this.userDao.insertUser(user);13     }14     @Test15     @Transactional16     @Rollback17     public void testUpdateUser() {18         //...19     }20 }

使用HQL,Hibernate Query Language,HQL的语法就是将原来sql语句中的字段名称换成对象与属性的名称。

1 @Override2 public List
selectUserByName(String username) {3 //getCurrentSession:当前session必须要有事物边界,且只能处理唯一的一个事务,当事务提交或者回滚后session自动失效4 //openSession:每次都会打开一个新的session,加入每次使用多次,则获得的是不同session对象,使用完毕后我们需要手动调用close方法关闭session。5 Session session = this.hibernateTemplate.getSessionFactory().getCurrentSession();6 Query queryTemp = session.createQuery("from User where username = :uname");7 Query query = queryTemp.setString("uname", username);8 return queryTemp.list();9 }

QBC查询:query by criteria

1 public List
selectUserByNameUseCriteria(String username) {2 Session session = this.hibernateTeamplate.getSessionFactory().getCurrentSession();3 Criteria criteria = session.createCriteria(User.class);4 criteria.add(Restrictions.eq("username", username));5 return criteria.list();6 }

 

转载于:https://www.cnblogs.com/guanghe/p/10974948.html

你可能感兴趣的文章
4553: [Tjoi2016&Heoi2016]序列
查看>>
3027 线段覆盖 2
查看>>
CF 959 E. Mahmoud and Ehab and the xor-MST
查看>>
【niubi-job——一个分布式的任务调度框架】----niubi-job这下更牛逼了!
查看>>
移动支付[1]——MAC加密
查看>>
c++深/浅拷贝 && 构造函数析构函数调用顺序练习题
查看>>
java读取文件夹下所有文件并替换文件每一行中指定的字符串
查看>>
HTML5规范-相关资料链接(大多都是英文文档)
查看>>
[转]OData/WebApi
查看>>
[转]高颜值、好用、易扩展的微信小程序 UI 库,Powered by 有赞
查看>>
[转]SQL Server如何启用xp_cmdshell组件
查看>>
[转]微擎应用笔记3--manifest.xml文件使用说明
查看>>
Codeforces 1000C Covered Points Count 【前缀和优化】
查看>>
python高效读取文件、文件改写
查看>>
gulp
查看>>
pgsql查询优化之模糊查询
查看>>
[转]-Gradle使用手册(三):构建任务
查看>>
ExtJS下拉树
查看>>
android 调用系统相机录像并保存
查看>>
BW系统表的命名规则
查看>>