不同的 java 架构选择不同的数据库连接管理模式,包含:jdbc:给予立即访问数据库,灵活性高但编号量多。hibernate:orm 层简化开发,但灵活性较低。spring:抽象层简化连接管理,带来了 jdbc 和orm 适用。jooq:专门用来 sql 编程,给予类型安全浏览。根据实际运用的需要选择最合适的对策尤为重要。
不同 Java 框架的数据库连接管理模式
在建立 Java Web应用软件时,数据库连接管理尤为重要。不同的框架对于数据库连接管理采用不同的对策,每个对策都有它优势与劣势。
copyright zvvq
JDBC (JavaDatabaseConnectivity)
zvvq好,好zvvq
JDBC 是连接 Java 应用软件与数据库的最直接方法。它提供了低等其他 API,容许开发者直接和数据库交互。JDBC 的主要特点是灵活性,它提供对数据库全面控制。但是,它还需要大量编码和配备工作,可能造成错误。
importjava.sql.*; 内容来自zvvq,别采集哟
publicclassJdbcExample{
publicstaticvoidmain(String[]args){
try{
copyright zvvq
//创建数据库连接
本文来自zvvq
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/database", "user", "password"); 内容来自samhan666
// 实行 SQL 查看
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM table");
// 解决查询记录 copyright zvvq
while (resultSet.next()) {
zvvq
System.out.println(resultSet.getString("column")); 内容来自samhan666
} zvvq
// 关掉联接
zvvq好,好zvvq
resultSet.close(); copyright zvvq
statement.close(); copyright zvvq
connection.close();
zvvq
} catch (SQLException e) { 内容来自zvvq
e.printStackTrace();
内容来自samhan666
} 内容来自zvvq
}
内容来自zvvq,别采集哟
}
本文来自zvvq
Hibernate copyright zvvq
Hibernate 是一个目标-关联投射 (ORM) 架构,它抽象了JDBC 的复杂性。它允许开发者应用 Java 目标与数据库交互,而非应用初始 SQL 句子。Hibernate 的主要特点是优化了开发,同时保持对数据库操纵。
内容来自samhan666
importorg.hibernate.Session; zvvq
importorg.hibernate.SessionFactory;
importorg.hibernate.Transaction;
importjavax.persistence.criteria.CriteriaBuilder;
内容来自zvvq,别采集哟
importjavax.persistence.criteria.CriteriaQuery; zvvq好,好zvvq
importjavax.persistence.criteria.Root;
zvvq
publicclassHibernateExample{ zvvq好,好zvvq
publicstaticvoidmain(String[]args){
SessionFactorysessionFactory=...;//SessionFactory的初始化编码此处省略
try (Session session = sessionFactory.openSession()) { copyright zvvq
// 逐渐事务
Transaction transaction = session.beginTransaction();
// 建立查看搭建器 内容来自zvvq,别采集哟
CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder(); copyright zvvq
CriteriaQuery criteriaQuery = criteriaBuilder.createQuery(Table.class); 内容来自samhan666
Root root = criteriaQuery.from(Table.class); 内容来自samhan666
criteriaQuery.select(root);
// 执行查询 zvvq
List results = session.createQuery(criteriaQuery).getResultList(); 内容来自zvvq,别采集哟
// 解决查询记录
for (Table table : results) { 内容来自samhan666
System.out.println(table.getName()); zvvq好,好zvvq
} zvvq好,好zvvq
// 递交事务
内容来自zvvq
transaction.commit();
内容来自samhan
} catch (Exception e) { 内容来自samhan
e.printStackTrace(); 内容来自zvvq
} zvvq
}
内容来自samhan666
}
zvvq.cn
Spring 内容来自samhan666
Spring 是一个全面的 Java 架构,它提供了数据库连接管理的一个抽象层。Spring JDBC 模块提供了一个模板类,优化了JDBC 相连的创建和管理。Spring Data JPA 模块带来了对Hibernate 的抽象,进一步简化了 ORM 操作。
importorg.springframework.jdbc.core.JdbcTemplate;
内容来自zvvq,别采集哟
importorg.springframework.jdbc.datasource.DriverManagerDataSource;
zvvq
publicclassSpringExample{ zvvq好,好zvvq
publicstaticvoidmain(String[]args){ zvvq好,好zvvq
//建立数据库
内容来自samhan
DriverManagerDataSource dataSource = new DriverManagerDataSource(); 内容来自samhan666
dataSource.setUrl("jdbc:mysql://localhost:3306/database");
dataSource.setUsername("user"); 内容来自zvvq
dataSource.setPassword("password"); 内容来自zvvq
// 建立 JdbcTemplate
copyright zvvq
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
// 实行 SQL 查看 内容来自zvvq,别采集哟
List> results = jdbcTemplate.queryForList("SELECT * FROM table"); zvvq.cn
// 解决查询记录
for (Map row : results) { 内容来自samhan666
System.out.println(row.get("column"));
内容来自samhan666
} 内容来自samhan
}
}
zvvq.cn
JOOQ 内容来自zvvq,别采集哟
JOOQ 是一个专注于 SQL 编程的开源库。它允许开发者应用流利的 API构建和实行繁杂的 SQL 查看。JOOQ 的主要特点是它提供了对 SQL 的类型安全浏览,优化了繁杂的查看。 本文来自zvvq
importorg.jooq.DSLContext;
importorg.jooq.SQLDialect; 本文来自zvvq
importorg.jooq.impl.DSL;
publicclassJooqExample{ 内容来自samhan
publicstaticvoidmain(String[]args){
//建立 DSL 前后文 zvvq.cn
DSLContext context = DSL.using(SQLDialect.MYSQL, "jdbc:mysql://localhost:3306/database", "user", "password");
zvvq好,好zvvq
// 实行 SQL 查看 内容来自zvvq,别采集哟
context.selectFrom("table").fetch().forEach(record -> { 内容来自zvvq,别采集哟
System.out.println(record.get("column")); copyright zvvq
}); 内容来自samhan666
}
zvvq好,好zvvq
}
结果
不同的 Java 架构对数据库连接管理采用不同的对策。JDBC 带来了对数据库直接访问,但需要大量编号。Hibernate 提供了一个 ORM 层,优化了开发,却会放弃一些灵活性。Spring 完成了抽象层,упрощает了模板方法的连接管理。JOOQ 专门用来 SQL 编程,带来了对 SQL 的类型安全浏览。开发者应依据特殊应用程序的要求选择最合适的对策。 内容来自samhan
以上就是不同Java框架的数据库连接管理模式较为的详细内容,大量请关注其他类似文章!
本文来自zvvq