mapper 动态sql like怎么用
时间: 2023-09-24 07:09:58 浏览: 126
使用 MyBatis 的 Mapper 动态 SQL 来实现 LIKE 查询,可以使用以下语法:
```
<select id="selectByKeyword" resultMap="BaseResultMap" parameterType="java.lang.String">
SELECT * FROM table_name WHERE column_name LIKE CONCAT('%', #{keyword}, '%')
</select>
```
这里的 `selectByKeyword` 是映射器方法的 ID,`BaseResultMap` 是结果映射器的 ID,`parameterType` 指定了参数类型为字符串。
使用 CONCAT 函数将 `%` 和关键字拼接起来。这样就可以在查询中使用 LIKE 操作符来实现模糊查询了。
在使用时,只需要将关键字作为参数传递给该方法即可,例如:
```
List<SomeEntity> selectByKeyword(String keyword);
```
相关问题
mybatis mapper.xml写sql like
Mybatis的mapper.xml文件中可以使用like关键字来进行模糊查询。具体的写法如下:
1. 使用%通配符进行模糊查询:
<select id="selectUserByName" parameterType="java.lang.String" resultType="User">
select * from user where name like '%${name}%'
</select>
2. 使用_通配符进行模糊查询:
<select id="selectUserByPhone" parameterType="java.lang.String" resultType="User">
select * from user where phone like '_${phone}_%'
</select>
其中,%表示匹配任意多个字符,_表示匹配一个字符。在使用时,需要注意SQL注入的问题,建议使用#{}占位符来替代${}。
mapper like
"Mapper-like"通常是指编程中的数据访问层设计模式,特别是在Spring框架和MyBatis这样的ORM(Object-Relational Mapping)工具中常见的概念。它是一种将数据库操作映射到业务对象的方法,类似于Java中的Mapper接口或者DAO(Data Access Object)。Mapper接口定义了一组方法,每种方法对应数据库表中的一个查询,通过这种设计,可以将SQL语句与业务逻辑解耦,使得代码更易于维护。
例如,在Spring Boot + MyBatis项目中,有一个`UserMapper`接口:
```java
public interface UserMapper {
List<User> getAllUsers();
User getUserById(int id);
void addUser(User user);
}
```
然后,具体的实现如`JdbcUserMapper`或`SqlSessionUserMapper`会负责执行对应的SQL查询或更新。这样做的好处是可以方便地替换底层的数据源,比如从JDBC切换到缓存或NoSQL,而不会影响业务逻辑代码。
阅读全文