四、mybatis通过dao实现类--crud
package com.itheima.dao.impi; import com.itheima.dao.IUserDao; import com.itheima.domain.User; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import java.util.List; /** * @author Administrator * @description: TODO * @date 2021/11/9 9:33 */ public class UserDaoImpl implements IUserDao { private SqlSessionFactory factory; /** * 通过重写构造方法,给工厂赋值 * @param factory */ public UserDaoImpl(SqlSessionFactory factory){ this.factory = factory; } /** * 查询所有用户的信息 * @return */ public List<User> findAll() { // 1.根据factory获取SqlSession对象 SqlSession session = factory.openSession(); // 2.调用SqlSession中的方法,实现查询列表 // 参数:xml配置文件的namespace属性,以及下面查询的id List<User> users = session.selectList("com.itheima.dao.IUserDao.findAll"); // 3.关闭资源 session.close(); return users; } /** * 添加用户dao * @param user */ public void saveUser(User user) { // 1.根据factory获取SqlSession对象 SqlSession session = factory.openSession(); session.insert("com.itheima.dao.IUserDao.saveUser",user); session.commit(); session.close(); } /** * 修改用户信息 * @param user */ public void updateUser(User user) { // 1.根据factory获取SqlSession对象 SqlSession session = factory.openSession(); // 参数是一个对象 session.update("com.itheima.dao.IUserDao.updateUser",user); session.commit(); session.close(); } /** * 删除用户 * @param userId */ public void deleteUser(Integer userId) { // 1.根据factory获取SqlSession对象 SqlSession session = factory.openSession(); //参数是实体类id名称 session.delete("com.itheima.dao.IUserDao.deleteUser",userId); session.commit(); session.close(); } /** * 查询一个 * @param id * @return */ public User findById(Integer id) { // 1.根据factory获取SqlSession对象 SqlSession session = factory.openSession(); User users = session.selectOne("com.itheima.dao.IUserDao.findById",id); // 3.关闭资源 session.close(); return users; } /** * 通过姓名模糊查询 * @param userName * @return */ public List<User> findByName(String userName) { // 1.根据factory获取SqlSession对象 SqlSession session = factory.openSession(); List<User> users = session.selectList("com.itheima.dao.IUserDao.findByName",userName); // 3.关闭资源 session.close(); return users; } /** * 查询总记录条数 * @return */ public int findTotal() { // 1.根据factory获取SqlSession对象 SqlSession session = factory.openSession(); Integer count = session.selectOne("com.itheima.dao.IUserDao.findTotal"); // 3.关闭资源 session.close(); return count; } }