Mybatis中使用Dao实现类实现增删改查【实际开发中使用代理dao】
生活随笔
收集整理的這篇文章主要介紹了
Mybatis中使用Dao实现类实现增删改查【实际开发中使用代理dao】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在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 List<User> findAll() { // 1、根據factory獲取Sqlsession對象SqlSession sqlSession = factory.openSession(); // 2、調用SqlSession中的方法,實現查詢列表List<User> 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 List<User> findByName(String username) {SqlSession sqlSession = factory.openSession(); // 2、調用SqlSession中的方法,實現查詢列表List<User> 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 List<User> 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、執行查詢所有方法List<User> 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、執行查詢所有方法List<User> 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);List<User> users = userDao.findUserByVo(queryVo);for(User use :users){System.out.println(use);}} }總結
以上是生活随笔為你收集整理的Mybatis中使用Dao实现类实现增删改查【实际开发中使用代理dao】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GoDaddy vs TMDHostin
- 下一篇: Mybatis中properties标签