Mybatis CRUD
阿新 • • 發佈:2021-01-31
基本的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("阿");