mybatis进阶版的增删改查

mybatis的进阶版的增删改查是包括两个方面:“用map来代替参数”,“模糊查询”

用map来代替参数

原因:map里边存的是键值对,<”key”,value>,要使用时就直接通过调用键值对来实现

map存储的数据没有大小,没有属性限制,因此使用起来更加方便

UserMapper的方法:

1
2
3
4
student getStudentMap(Map<String,Object> map);
//对于需要对数据库进行操作的操作 以添加用户为例
void InsertStudentMap(Map<String,Object> map);
//测试模糊查询

xml里进行配置

1
2
3
4
5
6
7
8
<!--使用map的查询-->
<!--map参数类型直接填map-->
<select id="getStudentMap" parameterType="map" resultType="com.dwx.pojo.student">
SELECT * FROM mybatis.student WHERE id = #{studentid}
</select>
<insert id="InsertStudentMap" parameterType="map">
insert into mybatis.student (id,name,password) VALUES (#{StudentID},#{StudentName},#{StudentPassword})
</insert>

测试方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
@Test
public void getStudentMap(){
MyBatisUtils myBatisUtils = new MyBatisUtils();
SqlSession sqlSession = myBatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
//因为是使用map作为参数类型 因此需要创建map
Map<String, Object> map = new HashMap<>();
map.put("studentid",1);
student studentMap = mapper.getStudentMap(map);
System.out.println(studentMap.getId());
//注意查询的要点在于设置返回值类型
sqlSession.close();
}
@Test
public void InsertStudnetMap(){
//固定格式得到mapper
MyBatisUtils myBatisUtils = new MyBatisUtils();
SqlSession sqlSession = myBatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
//设置Map
Map<String, Object> map = new HashMap<>();
map.put("StudentID",100);
map.put("StudentName","李一百");
map.put("StudentPassword","welcome");
mapper.InsertStudentMap(map);
//一定要记得 对于数据库数据有改动的操作一定要提交事务
sqlSession.commit();
//用完关闭资源
sqlSession.close();

}

模糊查询

注意:模糊查询在sql语句中的特殊点就是 把“=”代替为“like” 把参数需要进行模糊的地方使用%代替如%参数%

问题来了,这个%%的插入可以是在SQL里直接带的 也可以是传参时传递过去的,因此这里产生了两种模糊查询的方法

直接在sql语句中添加%%

xml中的配置

1
2
3
<select id="getList1" parameterType="String" resultType="com.dwx.pojo.student">
SELECT * FROM mybatis.student WHERE name like "%"#{name}"%"
</select>

测试类

1
2
3
4
5
6
7
8
9
10
11
12
13
public void getList(){
MyBatisUtils myBatisUtils = new MyBatisUtils();
SqlSession sqlSession = myBatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
//模糊查询的关键在于模糊的地方用%代替
//因此出现了两种模糊查询的方法
//第一种是在传参是直接将%%带上传过去
//第二种方式是在SQL中固定添加%% 参数只需要传想要查询的模糊参数
List<student> list = mapper.getList1("李");
for (student student : list) {
System.out.println(student.getId()+" "+student.getName()+" "+student.getPassword());
}
}

传参时带上%%

xml中的配置:

1
2
3
<select id="getList1" parameterType="String" resultType="com.dwx.pojo.student">
SELECT * FROM mybatis.student WHERE name like #{name}
</select>

测试类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public void getList(){
MyBatisUtils myBatisUtils = new MyBatisUtils();
SqlSession sqlSession = myBatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
//模糊查询的关键在于模糊的地方用%代替
//因此出现了两种模糊查询的方法
//第一种是在传参是直接将%%带上传过去
List<student> list = mapper.getList1("%李%");
for (student student : list) {
System.out.println(student.getId()+" "+student.getName()+" "+student.getPassword());
}


}
Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2015-2023 dwx
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信