本文是《Mybatis 手撸专栏》的第12章,我们将在之前章节的基础上,进一步完善我们的ORM框架。本章将详细介绍如何实现增加、删除、修改和查询操作,并通过代码示例演示相关功能的实现。
引言
--
在前几章中,我们已经学习了如何手动实现一个简单的ORM框架,并完成了基本的数据库连接、SQL生成和结果集处理。本章中,我们将在此基础上进一步完善我们的ORM框架,并实现常用的增加、删除、修改和查询操作,以实现对数据库的完整操作。
1. 增加操作
在实际的开发中,我们经常需要向数据库中插入新的数据。下面是实现插入操作的示例代码:
代码语言:java复制public void insert(User user) throws SQLException {
Connection connection = dataSource.getConnection();
String sql = "INSERT INTO user (id, name, age) VALUES (?, ?, ?)";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setLong(1, user.getId());
statement.setString(2, user.getName());
statement.setInt(3, user.getAge());
statement.executeUpdate();
statement.close();
connection.close();
}
在上述示例代码中,我们使用预编译的SQL语句来插入数据,通过设置参数的方式将User
对象的属性值传递进去。最后,我们通过executeUpdate()
方法执行SQL语句完成插入操作。
2. 删除操作
除了插入操作,我们可能也需要删除数据库中的数据。下面是实现删除操作的示例代码:
代码语言:java复制public void deleteById(Long id) throws SQLException {
Connection connection = dataSource.getConnection();
String sql = "DELETE FROM user WHERE id = ?";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setLong(1, id);
statement.executeUpdate();
statement.close();
connection.close();
}
在上述示例代码中,我们使用预编译的SQL语句来删除指定ID的数据。通过设置参数的方式将ID值传递进去。最后,我们通过executeUpdate()
方法执行SQL语句完成删除操作。
3. 修改操作
在应用程序中,经常需要对数据库中的数据进行修改。下面是实现修改操作的示例代码:
代码语言:java复制public void update(User user) throws SQLException {
Connection connection = dataSource.getConnection();
String sql = "UPDATE user SET name = ?, age = ? WHERE id = ?";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, user.getName());
statement.setInt(2, user.getAge());
statement.setLong(3, user.getId());
statement.executeUpdate();
statement.close();
connection.close();
}
在上述示例代码中,我们使用预编译的SQL语句来更新数据,通过设置参数的方式将User
对象的属性值传递进去。最后,我们通过executeUpdate()
方法执行SQL语句完成更新操作。
4. 查询操作
除了增加、删除和修改,查询操作是应用程序中常见且重要的操作。下面是实现查询操作的示例代码:
代码语言:java复制public List<User> findAll() throws SQLException {
Connection connection = dataSource.getConnection();
String sql = "SELECT * FROM user";
PreparedStatement statement = connection.prepareStatement(sql);
ResultSet rs = statement.executeQuery();
List<User> userList = new ArrayList<>();
while (rs.next()) {
User user = new User();
user.setId(rs.getLong("id"));
user.setName(rs.getString("name"));
user.setAge(rs.getInt("age"));
userList.add(user);
}
rs.close();
statement.close();
connection.close();
return userList;
}
在上述示例代码中,我们使用预编译的SQL语句来查询全部数据,并通过executeQuery()
方法执行SQL语句获取查询结果集。然后,我们遍历结果集,将每行数据转换为User
对象,并将其添加到结果集列表中。
结束语
在本章中,我们进一步完善了我们的ORM框架,实现了常用的增加、删除、修改和查询操作。通过使用预编译的SQL语句和参数设置,我们能够更安全、高效地操作数据库。
希望通过本章的学习,您对如何实现增加、删除、修改和查询操作有了更深入的理解。如果您有任何疑问或需要进一步的帮助,请随时告诉我!
参考资料:
- Mybatis 官方文档
我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!