zoukankan      html  css  js  c++  java
  • Mybatis框架-CRUD

     

    传统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.        配置映射配置文件

    配置namespaceselect,  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);
    
        }  
    
    }
  • 相关阅读:
    Java weak reference
    Java 代理模式
    Eclipse 代码自动提示
    Eclipse 设置默认编码为Utf-8
    MyBatis 作用域(Scope)和生命周期
    MyBatis 命名空间与命名解析
    Java 泛型 介绍
    【总结】过去的风口让很多人改变了阶层,我们90后的下一个风口会是什么?
    【前端】js截取or分割字符串的常见方法
    基于react/vue的移动端终极适配方案vw单位(更新css-modules配置)
  • 原文地址:https://www.cnblogs.com/tweixi/p/12411449.html
Copyright © 2011-2022 走看看