网站建设方案设计书参考,优化网站服务,dw网页制作成品代码加图片,400大看免费行情的软件在Mybatis开发中#xff0c;使用到的是代理Dao的方式实现增删改查#xff0c;这样就不需要在写Dao的实现类 但是Mybatis也支持写Dao实现类#xff01;即DaoImpl 直接上DaoImpl#xff0c;之前的代码可以参考前面几篇文章。
DaoImpl类
package com.itheima.dao.impl;impor…在Mybatis开发中使用到的是代理Dao的方式实现增删改查这样就不需要在写Dao的实现类 但是Mybatis也支持写Dao实现类即DaoImpl 直接上DaoImpl之前的代码可以参考前面几篇文章。
DaoImpl类
package com.itheima.dao.impl;import com.itheima.dao.IUserDao;
import com.itheima.domain.QueryVo;
import com.itheima.domain.User;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;import java.util.List;/*** Created by Administrator on 2019/10/15.*/
public class UserDaoImpl implements IUserDao {private SqlSessionFactory factory;public UserDaoImpl(SqlSessionFactory factory) {this.factory factory;}Overridepublic ListUser findAll() {
// 1、根据factory获取Sqlsession对象SqlSession sqlSession factory.openSession();
// 2、调用SqlSession中的方法实现查询列表ListUser user sqlSession.selectList(com.itheima.dao.IUserDao.findAll);//参数就是能获取配置信息的keyfor (User use : user) {System.out.println(use);}
// 3、释放资源sqlSession.close();return user;}Overridepublic void saveUser(User user) {SqlSession sqlSession factory.openSession();sqlSession.insert(com.itheima.dao.IUserDao.saveUser,user);sqlSession.commit();sqlSession.close();}Overridepublic void updateUser(User user) {SqlSession sqlSession factory.openSession();sqlSession.update(com.itheima.dao.IUserDao.updateUser,user);sqlSession.commit();sqlSession.close();}Overridepublic void deleteUser(Integer userId) {SqlSession sqlSession factory.openSession();sqlSession.update(com.itheima.dao.IUserDao.deleteUser,userId);sqlSession.commit();sqlSession.close();}Overridepublic User findById(Integer userId) {SqlSession sqlSession factory.openSession();User user sqlSession.selectOne(com.itheima.dao.IUserDao.findById, userId);sqlSession.commit();sqlSession.close();return user;}Overridepublic ListUser findByName(String username) {SqlSession sqlSession factory.openSession();
// 2、调用SqlSession中的方法实现查询列表ListUser user sqlSession.selectList(com.itheima.dao.IUserDao.findByName,username);//参数就是能获取配置信息的key
// 3、释放资源sqlSession.close();return user;}Overridepublic int findUserCount() {SqlSession sqlSession factory.openSession();Integer count sqlSession.selectOne(com.itheima.dao.IUserDao.findUserCount);return count;}Overridepublic ListUser findUserByVo(QueryVo vo) {return null;}
}
单元测试
package com.itheima.test;import com.itheima.dao.IUserDao;
import com.itheima.dao.impl.UserDaoImpl;
import com.itheima.domain.QueryVo;
import com.itheima.domain.User;
import org.apache.ibatis.io.Resources;
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.InputStream;
import java.util.Date;
import java.util.List;/*** 测试Mybatis的crud操作*/
public class mybatis {private InputStream in;private IUserDao userDao;Before //用于在测试方法之前执行public void init() throws Exception {// 1、读取配置文件生成字节输入流in Resources.getResourceAsStream(SqlMapConfig.xml);// 2、获取sqlSessionfactorySqlSessionFactory factory new SqlSessionFactoryBuilder().build(in);// 3、使用工厂对象创建dao对象userDao new UserDaoImpl(factory);}After //用于在测试方法之后执行public void destory() throws Exception {in.close();}/*** 测试查询所有*/Testpublic void findAll() {// 5、执行查询所有方法ListUser users userDao.findAll();for (User user : users) {System.out.println(user);}}/*** 测试保存操作*/Testpublic void testSave() {User user new User();user.setUsername(张XX);user.setAddress(北京 海淀区);user.setSex(男);user.setBirthday(new Date());System.out.println(保存之前user);userDao.saveUser(user);System.out.println(保存之后user);}/*** 测试更新操作*/Testpublic void testUpdate() {User user new User();user.setId(52);user.setUsername(张XXABC);user.setAddress(北京 海淀区);user.setSex(男);user.setBirthday(new Date());userDao.updateUser(user);}/*** 测试删除操作*/Testpublic void testDelete() {userDao.deleteUser(51);}/*** 测试id查询一个用户*/Testpublic void testFindById() {// 5、执行查询所有方法User user userDao.findById(48);System.out.println(user.getId());System.out.println(user.getAddress());System.out.println(user.getBirthday());System.out.println(user.getUsername());}/*** 测试模糊查询*/Testpublic void testFindByName() {// 5、执行查询所有方法ListUser users userDao.findByName(%王%);for (User user : users){System.out.println(user);}}/*** 查询用户总个数*/Testpublic void testFindUserCount(){int count userDao.findUserCount();System.out.println(count);}Testpublic void testFindByQueryVo(){QueryVo queryVo new QueryVo();User user new User();user.setUsername(%王%);queryVo.setUser(user);ListUser users userDao.findUserByVo(queryVo);for(User use :users){System.out.println(use);}}
}