spring mvc+spring + hibernate 整合
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring mvc+spring + hibernate 整合相关的知识,希望对你有一定的参考价值。
在上篇文章中,我建立了工程并配置了spring + hibernate。今天我们检验下上篇文章的成果,如何检查呢?那就是进行单元测试。本篇文章就让大家和我一起来就前面的建的工程进行单元测试。 本项目使用Junit进行单元测试,需要引用单元测试的包,在的工程建立中已有了如何引入单元测试的依赖,这里就不多说了。要进行单元单元测试,我们就按下面的步骤进行
一:建立实体
本例是刚弄开始学习,所以表不弄得太复杂,我们就以用户登录为例:建立一个用户对象,拥有用户名和密码两个属性,密码开始也使用名文的方式。
在com.ympcsoft.sys.domain包中建立SysUser.java。代码如下
package com.ympcsoft.sys.domain;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
//注解,说明这是实体类
@Entity
@Table(name = "SysUser")
public class SysUser {
//定义字段
//主键字段,统一叫id
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY) //字段自增长
@Column(name = "id")
private Long id;
//用户名,32长度,不能为空
@Column(name="USER_NAME", length=32, nullable = false)
private String userName;
//用户密码,32长度,不能为空
@Column(name="USER_PWD", length=32, nullable=false)
private String userPwd;
//构造函数
public SysUser() {
super();
// TODO Auto-generated constructor stub
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
}
二:建立SysUserDao文件
package com.ympcsoft.sys.dao;
import javax.annotation.Resource;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.stereotype.Repository;
import com.ympcsoft.sys.domain.SysUser;
/**
* 此处分层来讲应该是SysUserDao接口,然后实现,现在学习的需要,直接访问SessoinFactory
* */
@Repository
public class SysUserDao{
//注解来源
@Resource(name="sessionFactory")
private SessionFactory sessionFactory;
//保存用户
public void addUser(SysUser sysUser) {
//获取Session
Session session = sessionFactory.getCurrentSession();
//持久到数据库
session.persist(sysUser);
}
}
三:建立 SysUserService文件
package com.ympcsoft.sys.service;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.ympcsoft.sys.dao.SysUserDao;
import com.ympcsoft.sys.domain.SysUser;
@Transactional
@Service
public class SysUserService {
private SysUserDao sysUserDao;
@Resource
public void setSysUerDao(SysUserDao sysUserDao){
this.sysUserDao = sysUserDao;
}
public void addUser(SysUser sysUser){
sysUserDao.addUser(sysUser);
}
}
四:建立测试文件SysUserTest(src/test/jav)
package services;
import javax.annotation.Resource;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.ympcsoft.sys.dao.SysUserDao;
import com.ympcsoft.sys.domain.SysUser;
import com.ympcsoft.sys.service.SysUserService;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:spring.xml" })
public class SysUserTest {
@Resource
private SysUserDao sysUserDao;
@Resource
private SysUserService sysUserService;
@Before
public void setUp() throws Exception {
}
@Test
public final void testSave() {
SysUser sysUser = new SysUser();
sysUser.setUserName("admin");
sysUser.setUserPwd("123456");
sysUserService.addUser(sysUser);
}
}
五:运行测试
如果测试通过,则数据表自动建好,数据也已插入
!--more-->
以上是关于spring mvc+spring + hibernate 整合的主要内容,如果未能解决你的问题,请参考以下文章
Spring MVC学习笔记---Spring MVC 的HelloWorld
spring mvc中 Circular view path 问题