常见的Java ORM框架有哪些?

  • Post category:Java

常见的 Java ORM 框架有很多,其中比较流行和常用的有 MyBatis、Hibernate 和 Spring Data JPA,下面我将分别对它们进行简单的介绍和使用攻略。

MyBatis

MyBatis 是一种半自动化 ORM 工具,通过 XML 或注解配置 SQL 语句,提供了一种将 SQL 语句与 Java 对象映射的解决方案。

使用 MyBatis 的基本流程如下:

1. 引入 MyBatis 依赖

在 Maven 项目的 pom.xml 文件中加入以下依赖:

<dependencies>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.7</version>
    </dependency>
</dependencies>

2. 配置 MyBatis

在项目的 src/main/resources 目录下创建一个 mybatis-config.xml 文件,其中包含了 MyBatis 配置信息,例如数据源信息、插件配置、别名配置等。

3. 创建映射文件或注解映射

src/main/resources 目录下创建 mapper 目录,然后创建一个 XML 映射文件,或者在 Java 实体类上使用注释,指定 SQL 语句与 Java 对象的映射方式。MyBatis 的 XML 映射文件有自己的命名规则,即 mapper 文件名必须与实体类名相同,并且必须放在 mapper 目录下。

4. 进行 CRUD 操作

在 Java 代码中使用 MyBatis 的 API 进行 CRUD 操作,例如:

SqlSessionFactory sessionFactory = MyBatisUtils.getSessionFactory();
SqlSession session = sessionFactory.openSession();
UserMapper mapper = session.getMapper(UserMapper.class);

// 查询所有用户
List<User> userList = mapper.findAllUsers();

// 根据 ID 查询用户
User user = mapper.findUserById(1L);

// 添加用户
User userToAdd = new User();
userToAdd.setUsername("test");
userToAdd.setPassword("123456");
mapper.addUser(userToAdd);
session.commit();

// 更新用户
user.setPassword("654321");
mapper.updateUser(user);
session.commit();

// 删除用户
mapper.deleteUser(user.getId());
session.commit();

session.close();

Hibernate

Hibernate 是一个全自动 ORM 框架,它通过使用 Java 注释或 XML 文件来映射 Java 对象和数据库表之间的关系。

使用 Hibernate 的基本流程如下:

1. 引入 Hibernate 依赖

在 Maven 项目的 pom.xml 文件中加入以下依赖:

<dependencies>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.4.30.Final</version>
    </dependency>
</dependencies>

2. 配置 Hibernate

src/main/resources 目录下创建一个 hibernate.cfg.xml 文件,其中包含了 Hibernate 配置信息,例如数据源信息、映射文件路径、以及缓存和事务管理配置等。

3. 创建实体类

创建一个 Java 实体类来表示数据库中的一张表,同时使用 Java 注释或 XML 文件来映射 Java 对象和数据库表之间的关系。

4. 进行 CRUD 操作

在 Java 代码中使用 Hibernate 的 API 进行 CRUD 操作,例如:

SessionFactory sessionFactory = HibernateUtils.getSessionFactory();
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();

// 查询所有用户
List<User> userList = session.createQuery("FROM User").list();

// 根据 ID 查询用户
User user = session.get(User.class, 1L);

// 添加用户
User userToAdd = new User();
userToAdd.setUsername("test");
userToAdd.setPassword("123456");
session.save(userToAdd);
session.getTransaction().commit();

// 更新用户
user.setPassword("654321");
session.update(user);
session.getTransaction().commit();

// 删除用户
session.delete(user);
session.getTransaction().commit();

session.close();

Spring Data JPA

Spring Data JPA 是 Spring 框架的一部分,它是基于 JPA 标准的 ORM 框架的封装,简化了 JPA 的复杂性。

使用 Spring Data JPA 的基本流程如下:

1. 引入 Spring Data JPA 依赖

在 Maven 项目的 pom.xml 文件中加入以下依赖:

<dependencies>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-jpa</artifactId>
        <version>2.5.1</version>
    </dependency>
</dependencies>

2. 配置 Spring Data JPA

src/main/resources 目录下创建一个 application.ymlapplication.properties 文件,其中包含了 Spring Data JPA 配置信息,例如数据源信息、映射文件路径等。

3. 创建实体类和仓库接口

创建一个 Java 实体类来表示数据库中的一张表,同时创建一个仓库接口,该接口继承自 JpaRepository<T, ID> 接口,其中 T 表示实体类的类型,ID 表示实体类 ID 的类型。

4. 进行 CRUD 操作

在 Java 代码中使用仓库接口的方法来进行 CRUD 操作,例如:

@Autowired
private UserRepository userRepository;

// 查询所有用户
List<User> userList = userRepository.findAll();

// 根据 ID 查询用户
Optional<User> user = userRepository.findById(1L);

// 添加用户
User userToAdd = new User();
userToAdd.setUsername("test");
userToAdd.setPassword("123456");
userRepository.save(userToAdd);

// 更新用户
user.ifPresent(value -> {
    value.setPassword("654321");
    userRepository.save(value);
});

// 删除用户
user.ifPresent(userRepository::delete);

以上就是对三种常见的 Java ORM 框架的使用攻略的详细讲解。