完成MyBatis环境的搭建后,用程 序实现根据id查询用户信息的操作,按以下步骤进 行实现: 1. 数据准备; 2. 创建POJO实体 3. 创建映射文件UserMapper.xml 4. 修改mybatis-confg.xml配置文件 5. 编写测试类只需要代码
时间: 2024-03-19 15:43:15 浏览: 80
mybaitis_first_根据用户id查询
好的,以下是对应的代码:
1. 数据准备
首先需要有一个数据库,假设我们创建了一个名为`test`的数据库,其中有一张名为`user`的表,表结构如下:
```
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
`age` int(11) NOT NULL,
`gender` varchar(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
然后插入一些测试数据:
```
INSERT INTO `user` (`id`, `name`, `age`, `gender`) VALUES (1, '张三', 18, '男');
INSERT INTO `user` (`id`, `name`, `age`, `gender`) VALUES (2, '李四', 20, '女');
INSERT INTO `user` (`id`, `name`, `age`, `gender`) VALUES (3, '王五', 22, '男');
```
2. 创建POJO实体
创建一个名为`User`的Java类,表示`user`表对应的实体类,代码如下:
```
public class User {
private Integer id;
private String name;
private Integer age;
private String gender;
// 省略 getter 和 setter 方法
}
```
3. 创建映射文件UserMapper.xml
在 resource 目录下创建一个名为`UserMapper.xml`的文件,代码如下:
```
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">
<select id="getUserById" parameterType="java.lang.Integer" resultType="com.example.pojo.User">
SELECT * FROM user WHERE id = #{id}
</select>
</mapper>
```
上述代码定义了一个名为`getUserById`的查询语句,参数类型为`java.lang.Integer`,结果类型为`com.example.pojo.User`,实现根据id查询用户信息的操作。
4. 修改mybatis-confg.xml配置文件
在 resource 目录下的`mybatis-confg.xml`文件中添加如下配置:
```
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/example/mapper/UserMapper.xml"/>
</mappers>
</configuration>
```
其中`<dataSource>`标签中的`url`、`username`和`password`属性需要根据实际情况修改。
5. 编写测试类
在测试类中使用`SqlSessionFactory`、`SqlSession`和`UserMapper`来查询用户信息,代码如下:
```
public class MybatisTest {
public static void main(String[] args) {
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader("mybatis-config.xml"));
try (SqlSession session = sessionFactory.openSession()) {
UserMapper userMapper = session.getMapper(UserMapper.class);
User user = userMapper.getUserById(1);
System.out.println(user);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
上述代码通过`SqlSessionFactoryBuilder`来创建`SqlSessionFactory`,然后通过`SqlSession`来获取`UserMapper`实例,在`UserMapper`实例中调用`getUserById`方法来查询用户信息。最后输出查询结果。
希望以上代码能够帮到你。
阅读全文