Enterprise 中级

用 JPA 的对象关系映射和 EntityManager API 替代冗长的 JDBC 样板代码。

✕ Java EE
String sql = "SELECT * FROM users WHERE id = ?";
try (Connection con = dataSource.getConnection();
     PreparedStatement ps =
             con.prepareStatement(sql)) {
    ps.setLong(1, id);
    ResultSet rs = ps.executeQuery();
    if (rs.next()) {
        User u = new User();
        u.setId(rs.getLong("id"));
        u.setName(rs.getString("name"));
    }
}
✓ Jakarta EE 8+
@PersistenceContext
EntityManager em;

public User findUser(Long id) {
    return em.find(User.class, id);
}

public List<User> findByName(String name) {
    return em.createQuery(
        "SELECT u FROM User u WHERE u.name = :name",
        User.class)
        .setParameter("name", name)
        .getResultList();
}
发现此代码有问题? 告诉我们。
🗺️

对象映射

实体是带注解的普通类——无需手动 ResultSet 到对象的转换。

🔧

关系处理

一对多、多对多等关系由 JPA 自动处理。

📏

更少代码

消除大量 JDBC 样板——连接、语句、关闭。

旧方式
JDBC
现代方式
JPA EntityManager
自 JDK
11
难度
中级
JDBC 与 JPA
可用

自 Jakarta EE 8 / Java 11 起广泛可用

JPA(Jakarta Persistence API)将 Java 对象映射到数据库行,消除了手动 SQL、ResultSet 映射和参数设置。EntityManager 提供高级查询和关系管理。

分享 𝕏 🦋 in