Mybatis框架(四)逆向工程生成的Mapper接口方法的使用


一、mapper接口中的函數及方法

int insertSelective(User record)                  按不為null的字段插入數據

二、ByPrimaryKey的示例

  1.selectByPrimaryKey

    @Test
    public void testMapper() throws Exception{
        // 4. 創建SqlSession對象
        //openSession():若括號里為true,則設置為事務自動提交。若不填則默認手動提交,將自動提交設置成false,然后調用sqlSession.commit()方法。
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        //5.創建mapper,調用mapper里的方法
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

        //從數據庫中根據主鍵查詢出Po
        User user = userMapper.selectByPrimaryKey(6);
        //Po轉Vo,用於數據展示
        UserVo userVo = new UserVo(user);
        System.out.println(userVo);
    }

 

結果

 

  2、insert

  (insertSelective對應的sql語句加入了NULL校驗,即只會插入數據不為null的字段值。 insert則會插入所有字段,會插入null。

    也就意味着如果定義了表 default 字段,使用 insert 還是會插入 null 而忽略 default,insertSelective 當字段為 null 時會用 default 自動填充)

    @Test
    public void testInsert() throws Exception{
        // 4. 創建SqlSession對象
        //openSession():若括號里為true,則設置為事務自動提交。若不填則默認手動提交,將自動提交設置成false,然后調用sqlSession.commit()方法。
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        //5.創建mapper,調用mapper里的方法
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

        //創建一個實體類Vo並增加其屬性
        User user = new User();
        user.setId(7);
        user.setName("周傑倫");
        user.setPwd("123456");

        userMapper.insert(user);
    }

 

結果

 

三、Example的使用

mybatis的逆向工程中會生成實例及實例對應的example,example用於添加條件,相當where后面的部分

xxxExample example = new xxxExample();
xxxExample.Criteria criteria = example.createCriteria();

 

示例

  1、selectByExample

    @Test
    public void selectByExample(){
        // 4. 創建SqlSession對象
        //openSession():若括號里為true,則設置為事務自動提交。若不填則默認手動提交,將自動提交設置成false,然后調用sqlSession.commit()方法。
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        //5.創建mapper,調用mapper里的方法
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

        //通過criteria構造查詢條件
        UserExample userExample = new UserExample();
        //構造自定義查詢條件
        UserExample.Criteria criteria = userExample.createCriteria();
        //查詢Id為 6 的記錄
        criteria.andIdEqualTo(6);
        List<User> userList = userMapper.selectByExample(userExample);
        for (User user:userList) {
            UserVo userVo = new UserVo(user);
            System.out.println(userVo);
        }

 

結果

 

四、總結

對於單表操作的話,逆向工程提供的Mapper接口是可以實現簡單的CRUD的,對於復雜的業務要求則需要我們自己定義Mapper來寫SQL。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  

 

圖片參考【mybatis逆向工程生成的mapper方法使用(有例子)】更詳細


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM