public interface UserMapper { public User queryUserByName(String userName); }
时间: 2024-02-03 07:02:36 浏览: 143
这是一个接口定义,名为 `UserMapper`,其中定义了一个方法 `queryUserByName`,用于根据用户名查询用户信息。该方法接受一个 `String` 类型的参数 `userName`,表示要查询的用户名,返回一个 `User` 类型的对象,表示查询结果。
在实际应用中,需要编写该接口的实现类,并使用 MyBatis 框架来将该接口与数据库操作语句关联起来。例如,可以编写如下的 `UserMapper` 实现类:
```
public class UserMapperImpl implements UserMapper {
private SqlSessionFactory sqlSessionFactory;
public UserMapperImpl(SqlSessionFactory sqlSessionFactory) {
this.sqlSessionFactory = sqlSessionFactory;
}
@Override
public User queryUserByName(String userName) {
try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
return mapper.queryUserByName(userName);
}
}
}
```
该实现类中,使用了 `SqlSession` 和 `SqlSessionFactory` 来执行数据库操作,并将 `UserMapper` 接口的方法映射到相应的 SQL 语句。在查询方法中,首先使用 `SqlSessionFactory` 来获取 `SqlSession` 对象,然后通过该对象获取 `UserMapper` 的实现,最后调用 `queryUserByName` 方法来执行查询操作。
在使用该类时,需要先创建 `SqlSessionFactory` 对象,然后将其传入 `UserMapperImpl` 的构造函数中。例如:
```
SqlSessionFactory sqlSessionFactory = ...; // 创建 SqlSessionFactory
UserMapper userMapper = new UserMapperImpl(sqlSessionFactory);
User user = userMapper.queryUserByName("张三"); // 查询名为 "张三" 的用户信息
```
阅读全文