传统dao开发实现CRUD
3.1 传统dao开发实现crud
使用 Mybatis 开发 Dao,通常有两个方法,即原始 Dao开发方式和 Mapper 接口代理开发方式。而现在主流的开发方式是接口代理开发方式,这种方式总体上更加简便。
本次课来了解一下传统dao开发方式:编写dao接口的实现类。
3.2 开发步骤、核心代码和配置
1. 创建项目,导包,导入日志配置文件
2. 创建实体类
3. 创建dao接口
public List<Users> findAllUsers(); List<Users> findAllUsers(); Users findById(intid); void insertUser(Users users); void updateUser(Users users); void deleteUser(intid);
配置开发环境,配置别名,配置sql映射文件注入
4. 配置核心配置文件
5. 创建dao接口的实现类
publicclass UserDaoImpl implements IUsersDao{ private SqlSessionFactory factory; public UserDaoImpl(SqlSessionFactory factory) { this.factory = factory; } //查询所有用户 @Override public List<Users> findAllUsers() { SqlSession sqlsession = factory.openSession(); //参数值为:映射文件中的namespace属性值+select标签的id值 List<Users> users = sqlsession.selectList("com.hebi.dao.IUsersDao.findAllUsers"); sqlsession.close(); returnusers; } //根据id查询用户 @Override public Users findById(intid) { SqlSession sqlsession = factory.openSession(); //参数值为:映射文件中的namespace属性值+select标签的id值 Users users = sqlsession.selectOne("com.hebi.dao.IUsersDao.findById",id); sqlsession.close(); returnusers; } //添加用户 @Override publicvoid insertUser(Users users) { SqlSession sqlsession = factory.openSession(); //参数值为:映射文件中的namespace属性值+select标签的id值 sqlsession.insert("com.hebi.dao.IUsersDao.insertUser",users); sqlsession.commit(); sqlsession.close(); } //修改用户 @Override publicvoid updateUser(Users users) { SqlSession sqlsession = factory.openSession(); //参数值为:映射文件中的namespace属性值+select标签的id值 sqlsession.update("com.hebi.dao.IUsersDao.updateUser",users); sqlsession.commit(); sqlsession.close(); } //删除用户 @Override publicvoid deleteUser(intid) { SqlSession sqlsession = factory.openSession(); //参数值为:映射文件中的namespace属性值+select标签的id值 sqlsession.delete("com.hebi.dao.IUsersDao.deleteUser",id); sqlsession.commit(); sqlsession.close(); } }
6. 配置映射配置文件
配置namespace和select, insert update delete标签
7. 编写测试类进行测试
publicclass Test01 { InputStream in; SqlSessionFactory factory; IUsersDao userDao; @Before//测试方法执行前执行 publicvoid init() throws IOException { //1)读取核心配置文件 in = Resources.getResourceAsStream("mybatis-config.xml"); //2)创建sqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); //3)创建userDao对象 userDao = new UserDaoImpl(factory); } @After//测试方法执行后执行 publicvoid destory() throws IOException { in.close(); } //测试查询所有用户 @Test publicvoid testAllUser() throws IOException { //调用dao实现类中的方法 List<Users> users = userDao.findAllUsers(); for(Users u:users) { System.out.println(u); } } //测试根据id查询用户 @Test publicvoid testFindById() throws IOException { //调用dao实现类中的方法 Users user = userDao.findById(2); System.out.println(user); } //测试添加用户 @Test publicvoid testInsertUser() throws IOException { Users users = new Users(); users.setUserName("天空"); users.setAge(16); userDao.insertUser(users); System.out.println(users); } //测试修改用户 @Test publicvoid testUpdateUser() { Users users = new Users(); users.setUserName("tiank"); users.setAge(18); users.setId(18); userDao.updateUser(users); } //测试删除用户 @Test publicvoid testDeleteUser() { userDao.deleteUser(23); } }