假设我们有一个表Course,需要根据用户在控制台输入的关键词name进行模糊查询,用spring mybatis 写一段模糊查询的代码
时间: 2024-02-09 16:09:04 浏览: 75
mybatis 模糊查询的实现方法
5星 · 资源好评率100%
假设我们已经定义了一个Course类作为实体类,包含了课程的各种属性信息。现在需要根据用户输入的关键词name进行模糊查询,可以使用MyBatis框架提供的注解@Select和@Param来实现。
首先,在CourseMapper.xml中定义一个select语句,如下所示:
```xml
<select id="findCoursesByName" resultType="Course">
SELECT * FROM course WHERE name LIKE CONCAT('%', #{name}, '%')
</select>
```
其中,#{name}表示使用MyBatis中的占位符,将参数name传递到查询语句中进行模糊查询。
然后,在CourseMapper接口中定义一个方法,如下所示:
```java
@Mapper
public interface CourseMapper {
@Select("SELECT * FROM course WHERE name LIKE CONCAT('%', #{name}, '%')")
List<Course> findCoursesByName(@Param("name") String name);
}
```
注解@Mapper表示该接口是一个MyBatis的Mapper接口,用于映射Course实体类和Course表。
注解@Select表示该方法对应一个查询语句,使用SELECT语句从Course表中查询符合条件的课程信息,并将结果映射到Course实体类中。
注解@Param表示该方法需要一个名为"name"的参数,用于传递用户输入的关键词。
最后,在Service层中调用CourseMapper接口中的方法,如下所示:
```java
@Service
public class CourseService {
@Autowired
private CourseMapper courseMapper;
public List<Course> findCoursesByName(String name) {
return courseMapper.findCoursesByName(name);
}
}
```
在Service层中,调用CourseMapper接口中的findCoursesByName方法,将用户输入的关键词传递给该方法,然后返回符合条件的课程列表。
阅读全文