spring mvc+spring + hibernate 整合

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring mvc+spring + hibernate 整合相关的知识,希望对你有一定的参考价值。

    在上篇文章中,我建立了工程并配置了spring + hibernate。今天我们检验下上篇文章的成果,如何检查呢?那就是进行单元测试。本篇文章就让大家和我一起来就前面的建的工程进行单元测试。
    本项目使用Junit进行单元测试,需要引用单元测试的包,在的工程建立中已有了如何引入单元测试的依赖,这里就不多说了。要进行单元单元测试,我们就按下面的步骤进行
    一:建立实体
        本例是刚弄开始学习,所以表不弄得太复杂,我们就以用户登录为例:建立一个用户对象,拥有用户名和密码两个属性,密码开始也使用名文的方式。
        在com.ympcsoft.sys.domain包中建立SysUser.java。代码如下
  1. package com.ympcsoft.sys.domain;
  2. import javax.persistence.Column;
  3. import javax.persistence.Entity;
  4. import javax.persistence.GeneratedValue;
  5. import javax.persistence.GenerationType;
  6. import javax.persistence.Id;
  7. import javax.persistence.Table;
  8. //注解,说明这是实体类
  9. @Entity
  10. @Table(name = "SysUser")
  11. public class SysUser {
  12. //定义字段
  13. //主键字段,统一叫id
  14. @Id
  15. @GeneratedValue(strategy=GenerationType.IDENTITY) //字段自增长
  16. @Column(name = "id")
  17. private Long id;
  18. //用户名,32长度,不能为空
  19. @Column(name="USER_NAME", length=32, nullable = false)
  20. private String userName;
  21. //用户密码,32长度,不能为空
  22. @Column(name="USER_PWD", length=32, nullable=false)
  23. private String userPwd;
  24. //构造函数
  25. public SysUser() {
  26. super();
  27. // TODO Auto-generated constructor stub
  28. }
  29. public Long getId() {
  30. return id;
  31. }
  32. public void setId(Long id) {
  33. this.id = id;
  34. }
  35. public String getUserName() {
  36. return userName;
  37. }
  38. public void setUserName(String userName) {
  39. this.userName = userName;
  40. }
  41. public String getUserPwd() {
  42. return userPwd;
  43. }
  44. public void setUserPwd(String userPwd) {
  45. this.userPwd = userPwd;
  46. }
  47. }

二:建立SysUserDao文件
  1. package com.ympcsoft.sys.dao;
  2. import javax.annotation.Resource;
  3. import org.hibernate.Session;
  4. import org.hibernate.SessionFactory;
  5. import org.springframework.stereotype.Repository;
  6. import com.ympcsoft.sys.domain.SysUser;
  7. /**
  8. * 此处分层来讲应该是SysUserDao接口,然后实现,现在学习的需要,直接访问SessoinFactory
  9. * */
  10. @Repository
  11. public class SysUserDao{
  12. //注解来源
  13. @Resource(name="sessionFactory")
  14. private SessionFactory sessionFactory;
  15. //保存用户
  16. public void addUser(SysUser sysUser) {
  17. //获取Session
  18. Session session = sessionFactory.getCurrentSession();
  19. //持久到数据库
  20. session.persist(sysUser);
  21. }
  22. }
三:建立 SysUserService文件
  1. package com.ympcsoft.sys.service;
  2. import javax.annotation.Resource;
  3. import org.springframework.stereotype.Service;
  4. import org.springframework.transaction.annotation.Transactional;
  5. import com.ympcsoft.sys.dao.SysUserDao;
  6. import com.ympcsoft.sys.domain.SysUser;
  7. @Transactional
  8. @Service
  9. public class SysUserService {
  10. private SysUserDao sysUserDao;
  11. @Resource
  12. public void setSysUerDao(SysUserDao sysUserDao){
  13. this.sysUserDao = sysUserDao;
  14. }
  15. public void addUser(SysUser sysUser){
  16. sysUserDao.addUser(sysUser);
  17. }
  18. }
四:建立测试文件SysUserTest(src/test/jav)
  1. package services;
  2. import javax.annotation.Resource;
  3. import org.junit.Before;
  4. import org.junit.Test;
  5. import org.junit.runner.RunWith;
  6. import org.springframework.test.context.ContextConfiguration;
  7. import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
  8. import com.ympcsoft.sys.dao.SysUserDao;
  9. import com.ympcsoft.sys.domain.SysUser;
  10. import com.ympcsoft.sys.service.SysUserService;
  11. @RunWith(SpringJUnit4ClassRunner.class)
  12. @ContextConfiguration({ "classpath:spring.xml" })
  13. public class SysUserTest {
  14. @Resource
  15. private SysUserDao sysUserDao;
  16. @Resource
  17. private SysUserService sysUserService;
  18. @Before
  19. public void setUp() throws Exception {
  20. }
  21. @Test
  22. public final void testSave() {
  23. SysUser sysUser = new SysUser();
  24. sysUser.setUserName("admin");
  25. sysUser.setUserPwd("123456");
  26. sysUserService.addUser(sysUser);
  27. }
  28. }
五:运行测试
技术分享
技术分享
如果测试通过,则数据表自动建好,数据也已插入












以上是关于spring mvc+spring + hibernate 整合的主要内容,如果未能解决你的问题,请参考以下文章

Spring MVC学习笔记---Spring MVC 的HelloWorld

spring mvc怎么存cookie

Spring MVC系列初识Spring MVC

spring mvc中 Circular view path 问题

spring boot 中Spring data jpa数据库表字段命名策略

Spring MVC 框架学习---- 我的第一个 Spring MVC 程序