以下代码在MyBatis–04CRUD操作的基础上修改。
持久层接口修改为
package com.cncs.dao;
import com.cncs.domain.User;
import java.util.List;
public interface IUserDao {
/**
* 查询所有
* @return
*/
List<User> findAll();
/**
* 保存用户
* @param user
*/
void saveUser(User user);
/**
* 更新用户
* @param user
*/
void updateUser(User user);
/**
* 删除用户
* @param userId
*/
int deleteUser(int userId);
/**
* 查询一个
* @param userId
* @return
*/
User findOne(int userId);
/**
* 查询总记录条数
* @return
*/
int findTotal();
}
新建持久层接口实现类UserDaoImpl
package com.cncs.dao.impl;
import com.cncs.dao.IUserDao;
import com.cncs.domain.User;
import org.apache.ibatis.session.SqlSession;
import java.util.List;
public class UserDaoImpl implements IUserDao {
private SqlSession sqlSession;
public UserDaoImpl(SqlSession sqlSession) {
this.sqlSession = sqlSession;
}
public List<User> findAll() {
List<User> list = sqlSession.selectList("com.cncs.dao.IUserDao.findAll");
return list;
}
public void saveUser(User user) {
sqlSession.insert("com.cncs.dao.IUserDao.saveUser", user);
}
public void updateUser(User user) {
sqlSession.update("com.cncs.dao.IUserDao.updateUser", user);
}
public int deleteUser(int userId) {
return sqlSession.delete("com.cncs.dao.IUserDao.deleteUser", userId);
}
public User findOne(int userId) {
return sqlSession.selectOne("com.cncs.dao.IUserDao.findOne", userId);
}
public int findTotal() {
return sqlSession.selectOne("com.cncs.dao.IUserDao.findTotal");
}
}
测试类修改为
package com.cncs.test;
import com.cncs.dao.IUserDao;
import com.cncs.dao.impl.UserDaoImpl;
import com.cncs.domain.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.List;
public class MyBatisTest {
private InputStream in;
private SqlSession sqlSession;
private IUserDao userDao;
@Before //在测试方法之前执行
public void init() throws IOException {
//1.读取mybatis核心配置文件
in = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.创建工厂对象
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory sessionFactory = builder.build(in);
//3.通过工厂对象构建SqlSession对象
sqlSession = sessionFactory.openSession();
//4.通过SqlSession对象创建代理对象
userDao = new UserDaoImpl(sqlSession);
}
@After //在测试方法之后执行
public void destory() throws IOException {
sqlSession.commit();
//6.释放资源
sqlSession.close();
in.close();
}
@Test
public void findAll() throws IOException {
//5.执行代理对象的方法
List<User> userList = userDao.findAll();
for (User user : userList) {
System.out.println(user);
}
}
@Test
public void saveUser() {
User user = new User();
user.setUsername("枯木逢春");
user.setBirthday(new Date());
user.setSex("男");
user.setAddress("海西省三亚市");
System.out.println("保存之前"+user);
userDao.saveUser(user);
System.out.println("保存之后"+user);
//需要手动提交
}
@Test
public void updateUser() {
User user = new User();
user.setUsername("aaa");
user.setBirthday(new Date());
user.setSex("女");
user.setAddress("海西省三亚市");
user.setId(61);
userDao.updateUser(user);
//需要手动提交
}
@Test
public void deleteUser() {
System.out.println(userDao.deleteUser(61));
//需要手动提交
}
@Test
public void findOne() {
User one = userDao.findOne(57);
System.out.println(one);
}
@Test
public void testFindTotal(){
System.out.println(userDao.findTotal());
}
}