ssm MyBaits模糊查询
时间: 2023-10-22 13:04:56 浏览: 43
在使用 MyBatis 进行模糊查询时,可以使用 SQL 的 LIKE 关键字,结合 % 和 _ 通配符来实现模糊匹配。具体操作如下:
1. 在 mapper.xml 文件中编写 SQL 语句,例如:
```xml
<select id="selectByName" resultType="User">
select * from user where name like #{name}
</select>
```
2. 在 Java 代码中调用该 SQL 语句,并传递模糊匹配的参数,例如:
```java
String name = "%张%";
List<User> userList = sqlSession.selectList("selectByName", name);
```
在这个例子中,% 表示匹配任意字符(包括空字符),而 _ 表示匹配单个字符。因此,"%张%" 表示匹配任意以 "张" 开头和结尾的字符串。
另外,需要注意的是,在使用 LIKE 关键字时,如果查询的数据量较大,可能会影响查询性能,因此可以考虑使用全文检索等技术来优化查询效率。
相关问题
ssm MyBaits分词查询
使用 MyBatis 进行分词查询需要借助于分词器组件,比如 IK 分词器。以下是一个使用 IK 分词器进行分词查询的示例:
1. 在 MyBatis 的配置文件中添加如下配置:
```xml
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<property name="helperDialect" value="mysql"/>
<property name="reasonable" value="true"/>
</plugin>
</plugins>
```
2. 在需要进行分词查询的语句中,使用 CONCAT_WS 函数将关键词进行拼接,然后使用 LIKE 进行模糊匹配。示例代码如下:
```xml
<select id="search" resultMap="BaseResultMap">
SELECT * FROM tb_product
WHERE CONCAT_WS(' ', name, description) LIKE CONCAT('%', #{keyword}, '%')
</select>
```
3. 在使用分词器进行查询时,需要将分词器加入到 MyBatis 的拦截器链中。示例代码如下:
```java
import com.github.pagehelper.PageHelper;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import java.util.Properties;
@SpringBootApplication
@MapperScan("com.example.demo.mapper")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Bean
public PageHelper pageHelper() {
PageHelper pageHelper = new PageHelper();
Properties properties = new Properties();
properties.setProperty("dialect", "mysql");
pageHelper.setProperties(properties);
// 添加 IK 分词器插件
Interceptor interceptor = new IKSqlInterceptor();
Properties properties2 = new Properties();
interceptor.setProperties(properties2);
pageHelper.getInterceptors().add(interceptor);
return pageHelper;
}
}
```
以上就是使用 MyBatis 进行分词查询的基本步骤。需要注意的是,不同的分词器使用方法可能不同,具体要根据分词器的文档进行配置。
ssm实现模糊查询
在SSM框架中,可以使用MyBatis提供的模糊查询功能来实现模糊查询,具体步骤如下:
1. 在Mapper.xml文件中编写SQL语句,使用LIKE关键字来进行模糊查询,例如:
```
<select id="searchUser" resultType="User">
SELECT * FROM user WHERE username LIKE CONCAT('%',#{username},'%')
</select>
```
2. 在对应的Mapper接口中定义方法,例如:
```
public List<User> searchUser(String username);
```
3. 在Service层中调用Mapper接口中定义的方法,例如:
```
@Override
public List<User> searchUser(String username) {
return userDao.searchUser(username);
}
```
4. 在Controller层中调用Service层中定义的方法,例如:
```
@GetMapping("/searchUser")
public String searchUser(@RequestParam("username") String username, Model model) {
List<User> userList = userService.searchUser(username);
model.addAttribute("userList", userList);
return "userList";
}
```
其中,`userDao`是对应的Mapper接口的实例化对象,`userDao.searchUser(username)`是调用Mapper接口中定义的方法,`userService`是对应的Service层的实例化对象,`userService.searchUser(username)`是调用Service层中定义的方法。最终,将查询结果返回到前端页面进行展示。