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;
}
}