1. 程式人生 > 其它 >Mybatis CRUD

Mybatis CRUD

技術標籤:javamybatis資料庫sql

基本的CRUD

我們只需要在我們的介面中新增這些方法就行。
在這裡插入圖片描述
在我們的UserMapper.xml中新增好相應的語句即可,這裡我有添加了一個屬性就是引數型別,獲取判斷條件#{}欄位名字必須和實體類中的屬性名一樣。

 <select id="getUserList" resultType="pojo.User">
        select * from user;
    </select>
    <select id="getUser" parameterType="int" resultType="pojo.User">
        select *  from user where id=#{id};
    </select>

    <insert id="addUser" parameterType="pojo.User" >
        insert into user(id,username,password) value (#{id},#{username},#{password});
    </insert>

    <update id="updateUser" parameterType="pojo.User">
        update user
        set username = #{username},password=#{password}
        where id=#{id};
    </update>

    <delete id="deleteUser" parameterType="int">
        delete from user where id=#{id};
    </delete>

測試類
根據id獲取使用者資訊 ,他只不過是傳遞了一個引數。

 SqlSession sqlSession = MybatisUtils.getSqlSession();
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    
    User user = mapper.getUser(1);
    System.out.println(user);
    sqlSession.close();

增刪改是和查不同,不同的一點是他需要提交事務,這也是比較重要的點。

SqlSession sqlSession = MybatisUtils.getSqlSession();
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//    新增
//    int i = mapper.addUser(new User(5, "老五", "1111"));
//        修改
//    int i = mapper.updateUser(new User(5, "老四", "1111"));
//   刪除
    int i = mapper.deleteUser(5);
    if(i>0){
        System.out.println("執行成功");
    }

//    最終要的一點是增刪該需要提交事務
    sqlSession.commit();


    sqlSession.close();

Map版

之所以交map版,主要是引數型別變成map,同樣我們在介面中新增這樣一個方法。

int addUser2(Map<String,Object> map);

在UserMapper.xml中新增,在這裡我們的引數型別發生了變化,同時我們接收引數的名可以取任意值,但是個值要和我們傳遞map中的鍵一致,要不然取不到值。

<insert id="addUser2" parameterType="map">
        insert into user(id,username,password) value (#{userid},#{name},#{pwd});
    </insert>

測試類 我們只需要把引數傳遞到map中,這樣我們可以決定我們傳遞的引數,我們只需要傳遞我們用到引數就行。

 SqlSession sqlSession = MybatisUtils.getSqlSession();
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    Map<String,Object> map=new HashMap<>();
    map.put("userid","4");
    map.put("name","老四");
    map.put("pwd","1111");

    int i = mapper.addUser2(map);
    if (i>0){
        System.out.println("執行成功");
    }
    sqlSession.commit();


    sqlSession.close();

模糊查詢

我們在查詢過程中可能會用到模糊查詢。
第一中相對來說比較安全

select * from user where username like #{name}

我們只需要在傳遞引數的時候新增好%%就好。

 List<User> user = mapper.getUserLike("%阿%");

第二種會出現sql注入問題

select * from user where username like "%"#{name}"%"

我們把%%寫到sql語句中,我們只需要傳遞引數。

 List<User> user = mapper.getUserLike("阿");