返回
从零到掌握Spring Boot数据库访问
后端
2023-12-17 03:26:12
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对象映射到数据库表。