MyBatis实现万能Map和模糊查询
时间:2022-03-27 08:30:48|栏目:JAVA代码|点击: 次
万能Map
我们在上一节博文里面将到利用Mybatis实现CRUD操作的时候,我们在数据库表中新增一条数据是这样操作的:
实体类对象的字段有:
package com.hpf.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
//编写实体类User
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Long id;
private String username;
private String password;
}
新增一条记录的xml文件配置内容为:
<insert id="addUser" parameterType="com.hpf.bean.User">
insert into userinfo (id,username,password) values (#{id},#{username},#{password})
</insert>
其中,#后带的字段名都是我们实体类用户类里面一模一样的字段名。
接着我们再来试试用Map的方式实现用户记录的新增:
<insert id="addUserByMap" parameterType="Map">
insert into userinfo (id,username,password) values (#{id},#{user},#{pwd})
</insert>
测试部分:
@Test
public void testAddUserByMap(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
Map<String,Object> map = new HashMap<>();
map.put("id", 6L);
map.put("user", "张三");
map.put("pwd", "666");
int res = mapper.addUserByMap(map);
sqlSession.commit();
sqlSession.close();
}
说明:我们业务相关的参数需要哪些字段内容,我们就往map里面传哪些字段内容就行。
模糊查询
要求查询下表内为李性的用户信息:

package com.hpf.dao;
import com.hpf.bean.User;
import java.util.List;
import java.util.Map;
//这个接口实现的是对于用户的相关操作
public interface UserDao {
//模糊查询用户信息
List<User> getUserByLike(Map map);
}
<select id="getUserByLike" parameterType="Map" resultType="com.hpf.bean.User">
select * from userinfo where username like #{value}
</select>
@Test
public void testGetUserByLike(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
Map<String,Object> map = new HashMap<>();
map.put("value", "李%");
List<User> userByLike = mapper.getUserByLike(map);
for(User user:userByLike)
System.out.println(user);
}
结果如图所示:

说明:模糊查询在这种方式下其实还有一种写法也可以得出结果,但是为了防止sql注入问题,我们不建议如下的写法:
<select id="getUserByLike" parameterType="Map" resultType="com.hpf.bean.User">
select * from userinfo where username like #{value}"%"
</select>
上一篇:spring data jpa开启批量插入、批量更新的问题解析
栏 目:JAVA代码
本文标题:MyBatis实现万能Map和模糊查询
本文地址:http://www.codeinn.net/misctech/197392.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




