DBunit、Spring TestContext实践

1、定义接口UserDao.java

package com.bao.dbunit.dao;import com.bao.dbunit.entity.User;public interface UserDao {public User getUserByNick(String nick);public void save(User user);public void update(User user);public void remove(String nick);}

Pojo类:User.java

package com.bao.dbunit.entity;public class User {private String nick;private String password;public String getNick() {return nick;}public void setNick(String nick) {this.nick = nick;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}

2、实现接口

1)帮助类:BaseDao.java

package com.bao.dbunit.dao.impl;import org.springframework.jdbc.core.support.JdbcDaoSupport;public class BaseDao extends JdbcDaoSupport {}

2)实现类:DefaultUserDao.java

package com.bao.dbunit.dao.impl;import java.sql.ResultSet;import java.sql.SQLException;import org.springframework.jdbc.core.RowMapper;import com.bao.dbunit.dao.UserDao;import com.bao.dbunit.entity.User;public class DefaultUserDao extends BaseDao implements UserDao {private static String QUERY_BY_NICK = "select * from user where user.nick = ?";private static String REMOVE_USER = "delete from user where user.nick = ?";private static String INSERT_USER = "insert into user(nick,password) values(?, ?)";private static String UPDATE_USER = "update user set user.password = ? where user.nick = ?";@Overridepublic User getUserByNick(String nick) {return (User) getJdbcTemplate().queryForObject(QUERY_BY_NICK,new Object[]{nick}, new RowMapper(){@Overridepublic Object mapRow(ResultSet rs, int index) throws SQLException {User user = new User();user.setNick(rs.getString("nick"));user.setPassword(rs.getString("password"));return user;}});}@Overridepublic void remove(String nick) {getJdbcTemplate().update(REMOVE_USER, new Object[]{nick});}@Overridepublic void save(User user) {getJdbcTemplate().update(INSERT_USER, new Object[]{user.getNick(), user.getPassword()});}@Overridepublic void update(User user) {getJdbcTemplate().update(UPDATE_USER, new Object[]{user.getPassword(), user.getNick()});}}

3、相关配置:applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation=" http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx/spring-tx.xsd"><bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql://localhost/dbunit"></property><property name="password" value="root" /><property name="username" value="root" /></bean><bean name="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource" /></bean><bean name="baseDao" abstract="true" class="com.bao.dbunit.dao.impl.BaseDao"><property name="jdbcTemplate"ref="jdbcTemplate"/></bean><bean name="userDao" parent="baseDao" class="com.bao.dbunit.dao.impl.DefaultUserDao" /></beans>

sql脚本:ddl.sql

create table user(nick varchar(12) not null,password varchar(12) not null,primary key(nick));

4、进行测试:UserDaoTest.java

接受失败,是我们不常听到或看到的一个命题,

DBunit、Spring TestContext实践

相关文章:

你感兴趣的文章:

标签云: