成Mybatis的入门程序的扩展,要求在测试代码中查询数据表中所有年龄大于18岁的数据。 1.运行展示效果 2.数据库截图 3.测试代码 4.数据表中包含年龄小于18岁的数据,并且大于18岁的数据不小于2条
时间: 2024-10-22 15:23:22 浏览: 31
成Mybatis入门程序通常会涉及配置mapper、pojo(持久化对象)、dao(数据访问对象)以及主程序中执行SQL查询。这里是一个简单的例子,假设我们有如下的结构:
1. **运行展示效果**:
当你在主程序中调用`List<User> users = userMapper.selectUsers();`这个方法(`userMapper`是通过SqlSession获取的),它会从数据库中查询出所有年龄大于18岁的用户列表,并显示在控制台或界面上。
2. **数据库截图**:
如果数据库是MySQL,可能会有一个名为`users`的表,包含字段`id`, `name`, `age`等。看起来像这样:
```sql
CREATE TABLE `users` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
`age` INT NOT NULL,
PRIMARY KEY (`id`)
);
```
3. **测试代码**(假设UserMapper.xml和User.java已存在):
```java
// UserMapper.xml (Mapper接口映射文件)
<select id="selectUsers" resultType="com.example.User">
SELECT * FROM users WHERE age > #{age}
</select>
// Test类
@Test
public void testSelectUsers() {
SqlSessionFactory factory = ...; // 初始化SqlSessionFactory
SqlSession sqlSession = factory.openSession();
try {
List<User> users = sqlSession.selectList("userMapper.selectUsers", new Object[]{18});
Assert.assertTrue(users.size() >= 2); // 验证至少有两条记录满足条件
for (User user : users) {
System.out.println(user.getName() + " - " + user.getAge());
}
} finally {
sqlSession.close();
}
}
// User.java (POJO)
class User {
private int id;
private String name;
private int age;
// getters and setters...
}
```
4. **数据表**:
数据表`users`可能存在一些18岁以下(比如16岁)的数据,但为了测试目的,至少需要两行年龄大于18岁的数据。
阅读全文