MyBatis实现万能Map和模糊查询

网友投稿 259 2022-12-28

MyBatis实现万能Map和模糊查询

目录万能Map模糊查询

万能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 into userinfo (id,username,password) values (#{id},#{username},#{password})

其中,#后带的字段名都是我们实体类用户类里面一模一样的字段名。

接着我们再来试试用Map的方式实现用户记录的新增:

insert into userinfo (id,username,password) values (#{id},#{user},#{pwd})

测试部分:

@Test

public void testAddUserByMap(){

SqlSession sqlSession = MyBatisUtils.getSqlSession();

UserDao mapper = sqlSession.getMapper(UserDao.class);

Map 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 * from userinfhttp://o where username like #{value}

@Test

public void testGetUserByLike(){

SqlSession sqlSession = MyBatisUtils.getSqlSession();

UserDao mapper = sqlSession.getMapper(UserDao.class);

Map map = new HashMap<>();

map.put("value", "李%");

List userByLike = mapper.getUserByLike(map);

for(User user:userByLike)

System.out.println(user);

}

结果如图所示:

说明:模糊查询在这种方式下其实还有一种写法也可以得出结果,但是为了防止sql注入问题,我们不建议如下的写法:

select * from userinfo where username like #{value}"%"

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:网站是否有api接口(网站的api是什么)
下一篇:Java 批量获取地址间距离工具(支持中转站)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~