您的位置:首頁技術文章
文章詳情頁

Mybatis CURD及模糊查詢功能的實現

瀏覽:21日期:2023-10-19 10:33:12

命名空間namespace:

Mybatis CURD及模糊查詢功能的實現

配置文件中namespace中的名稱為對應Mapper接口或者Dao接口的完整包名,必須一致!

1.查詢(select)

select:

接口中的方法名與映射文件中的SQL語句ID 一一對應

id parameterType resultType

案例:根據id查詢用戶

1.寫接口(在UserMapper中添加對應的方法)

public interface UserMapper { //根據ID查詢用戶 User getuserByID(int id); }

2.UserMapper.xml配置文件的編寫Sql語句

<select parameterType='int' resultType='com.xiong.pojo.User'> select * from mybatis.user where id = #{id};</select>

3.測試

@Test public void getUserID(){SqlSession sqlSession = MyBatisUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);User user = mapper.getuserByID(4);System.out.println(user);sqlSession.close(); }

注意:根據密碼和名字直接查詢用戶使用萬能的Map方法1.在接口方法中,直接傳遞Map;

User getuserByID2(Map<String,Object> map);

2.在編寫sql語句的時候,需要傳遞參數的類型,參數類型是map

<select resultType='com.xiong.pojo.User' parameterType='map'>select * from mybatis.user where id = #{userID} and name =#{username}; </select>

Mybatis CURD及模糊查詢功能的實現

此處的userID,username可以不是數據庫里面的字段,用map方法添加就可。

3.在使用方法的時候,Map的 key 為 sql中取的值即可,沒有順序要求!

@Test public void getUserID2(){SqlSession sqlSession = MyBatisUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);Map map= new HashMap<String, Object>();map.put('userID',2);map.put('username','gou');User user = mapper.getuserByID2(map);System.out.println(user);sqlSession.commit();sqlSession.close(); }

Mybatis CURD及模糊查詢功能的實現

總結:如果參數過多,我們可以考慮直接使用Map實現,如果參數比較少,直接傳遞參數即可

2.插入(insert)

insert1.在UserMapper中添加對應的方法

int addUser(User user);

2.在UserMapper.xml中添加insert語句

<insert parameterType='com.xiong.pojo.User'>insert into mybatis.user (id,name,pwd) values (#{id},#{name},#{pwd});</insert>

3.測試

@Test public void adduser(){SqlSession sqlSession = MyBatisUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);int i = mapper.addUser(new User(4, '狗哥', '45412331'));if(i>0){ System.out.println('插入成功');}//記得提交事物sqlSession.commit();sqlSession.close(); }

注意點:增、刪、改操作需要提交事務!

3.更新(update)

1.編寫接口方法

int updateUser(User user);

2.編寫接口對應的UserMapper.xml文件中的SQL

<update parameterType='com.xiong.pojo.User'> update mybatis.user set name=#{name},pwd=#{pwd} where id=#{id};</update>

3.測試(記住一定要提交事物)

@Test public void updateuser(){SqlSession sqlSession = MyBatisUtils.getSqlSession();System.out.println(sqlSession);UserMapper mapper = sqlSession.getMapper(UserMapper.class);int i = mapper.updateUser(new User(5, 'hh', '55464545'));if(i>0){ System.out.println('更新成功');}sqlSession.commit();sqlSession.close(); }4.刪除(delete)

1.編寫接口方法

int delete(int id);

2.編寫對應配置文件的SQL

<delete parameterType='int'>delete from mybatis.user where id=#{id}; </delete>

3.測試(記得要提交事物)

@Test public void deleteuser(){SqlSession sqlSession = MyBatisUtils.getSqlSession();System.out.println(sqlSession);UserMapper mapper = sqlSession.getMapper(UserMapper.class);int i = mapper.delete(4);if(i>0){ System.out.println('更新成功');}sqlSession.commit();sqlSession.close(); }

總結:所有的增刪改操作都需要提交事務!

5.模糊查詢(like)

直接在sql語句中拼接通配符,會引起sql注入

<!-- 模糊查詢--> <select resultType='com.xiong.pojo.User'>select * from mybatis.user where name like '%'#{value}'%'; </select>

Mybatis CURD及模糊查詢功能的實現

測試:

@Test public void getUserListByLike(){SqlSession sqlSession = MyBatisUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);List<User> user = (List<User>) mapper.getUserListByLike('李');for (User user1 : user) { System.out.println(user1);}sqlSession.commit();sqlSession.close(); }

以上就是Mybatis CURD及模糊查詢功能的實現的詳細內容,更多關于Mybatis 模糊查詢的資料請關注好吧啦網其它相關文章!

標簽: Mybatis 數據庫
相關文章:
国产综合久久一区二区三区