Mybatis 手撸专栏|第12章:完善ORM框架,增删改查操作

2023-11-09 15:06:47 浏览数 (1)

本文是《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腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

0 人点赞