使用mybatis 实现模糊查询在test类里测试
时间: 2024-03-02 17:54:30 浏览: 68
mybatis分页及模糊查询功能实现
好的,我可以为您提供一个简单的示例来演示如何使用 MyBatis 实现模糊查询,并在测试类里进行测试。请注意,以下示例仅供参考。
首先,您需要在 MyBatis 的配置文件中定义一个 SQL 映射语句,用于执行模糊查询。例如,您可以在 `mapper.xml` 文件中添加以下内容:
```xml
<!-- 定义模糊查询的 SQL 映射语句 -->
<select id="findUsersByName" resultType="User">
SELECT * FROM users WHERE name LIKE CONCAT('%',#{name},'%')
</select>
```
在这个映射语句中,我们使用了 `LIKE` 操作符来进行模糊匹配,`#{name}` 表示需要传入的参数值。注意,在这个例子中,我们使用了 `CONCAT` 函数将 `%` 符号与参数值拼接在一起,以构造模糊匹配的字符串。
接下来,您需要定义一个接口类,用于调用这个 SQL 映射语句。例如,在 `UserMapper` 接口中添加以下内容:
```java
public interface UserMapper {
// 定义调用 SQL 映射语句的方法
List<User> findUsersByName(String name);
}
```
在这个接口类中,我们定义了一个 `findUsersByName` 方法,用于调用之前在 `mapper.xml` 文件中定义的 SQL 映射语句。注意,`#{name}` 的值将通过这个方法的参数进行传递。
最后,在测试类中,您可以通过 `SqlSessionFactory` 创建一个 `SqlSession` 实例,并通过这个实例调用 `UserMapper` 接口中的方法来执行模糊查询。例如:
```java
public class MyBatisTest {
public static void main(String[] args) {
// 创建 SqlSessionFactory 实例
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 创建 SqlSession 实例
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
// 获取 UserMapper 接口的实例
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
// 调用方法执行模糊查询
List<User> users = userMapper.findUsersByName("Tom");
// 输出查询结果
for (User user : users) {
System.out.println(user);
}
} finally {
sqlSession.close();
}
}
}
```
在这个测试类中,我们首先创建了一个 `SqlSessionFactory` 实例,并通过这个实例创建了一个 `SqlSession` 实例。然后,我们通过 `SqlSession` 实例获取了 `UserMapper` 接口的实例,并调用了 `findUsersByName` 方法来执行模糊查询。最后,我们输出查询结果。
请注意,以上示例仅供参考,具体实现可能会因为您的业务需求而有所变化。同时,为了让这个示例能够正常运行,您需要自行创建一个 `User` 类,并在配置文件中定义好数据库连接信息。
阅读全文