返回

从零到掌握Spring Boot数据库访问

后端

Spring Boot数据库访问

在Spring Boot中,有几种方式可以访问数据库:

  • JDBC :JDBC是Java数据库连接的标准API,它提供了对不同数据库的统一访问方式。
  • JPA :JPA是Java持久化API,它是一个更高层次的数据库访问API,可以简化数据库操作。
  • Hibernate :Hibernate是一个对象-关系映射框架,它可以将Java对象映射到数据库表。

JDBC

JDBC是Java数据库连接的标准API,它提供了对不同数据库的统一访问方式。JDBC使用DriverManager类来加载数据库驱动程序,并使用Connection类来连接数据库。

import java.sql.*;

public class JdbcExample {

    public static void main(String[] args) {
        // 加载数据库驱动程序
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            return;
        }

        // 连接数据库
        try (Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password")) {
            // 创建Statement对象
            Statement statement = connection.createStatement();

            // 执行SQL查询
            ResultSet resultSet = statement.executeQuery("SELECT * FROM users");

            // 遍历结果集
            while (resultSet.next()) {
                // 获取结果集中的数据
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                int age = resultSet.getInt("age");

                // 打印结果
                System.out.println(id + "\t" + name + "\t" + age);
            }

            // 关闭结果集、Statement对象和连接
            resultSet.close();
            statement.close();
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

JPA

JPA是Java持久化API,它是一个更高层次的数据库访问API,可以简化数据库操作。JPA使用EntityManager类来管理数据库实体,并使用Query类来执行数据库查询。

import javax.persistence.*;

@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    private Integer age;

    // 省略getter和setter方法
}

public class JpaExample {

    public static void main(String[] args) {
        // 创建EntityManagerFactory
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("test");

        // 创建EntityManager
        EntityManager em = emf.createEntityManager();

        // 开始事务
        em.getTransaction().begin();

        // 创建一个新的用户实体
        User user = new User();
        user.setName("John Doe");
        user.setAge(20);

        // 保存用户实体
        em.persist(user);

        // 提交事务
        em.getTransaction().commit();

        // 关闭EntityManager和EntityManagerFactory
        em.close();
        emf.close();
    }
}

Hibernate

Hibernate是一个对象-关系映射框架,它可以将Java对象映射到数据库表。Hibernate使用SessionFactory类来创建SessionFactory,并使用Session类来操作数据库。

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateExample {

    public static void main(String[] args) {
        // 创建Configuration对象
        Configuration configuration = new Configuration();

        // 添加要映射的实体类
        configuration.addAnnotatedClass(User.class);

        // 创建SessionFactory
        SessionFactory sessionFactory = configuration.buildSessionFactory();

        // 创建Session
        Session session = sessionFactory.openSession();

        // 开始事务
        session.getTransaction().begin();

        // 创建一个新的用户实体
        User user = new User();
        user.setName("John Doe");
        user.setAge(20);

        // 保存用户实体
        session.save(user);

        // 提交事务
        session.getTransaction().commit();

        // 关闭Session和SessionFactory
        session.close();
        sessionFactory.close();
    }
}

总结

Spring Boot中提供了多种方式来访问数据库,JDBC、JPA和Hibernate是最常用的三种方式。JDBC是Java数据库连接的标准API,它提供了对不同数据库的统一访问方式。JPA是一个更高层次的数据库访问API,它可以简化数据库操作。Hibernate是一个对象-关系映射框架,它可以将Java对象映射到数据库表。