欢迎来到 JDBC 教程。Java 数据库连接 (JDBC) 是企业应用中最常用的 API 之一。这是因为大多数应用程序都使用某种形式的数据库连接。最近,我发布了许多与基本 JDBC、数据源以及与 Spring 框架集成相关的 JDBC 教程。
JDBC 教程
这是之前我发布的所有 JDBC 教程的索引帖子。如果您是 JDBC 的新手,那么您应该按顺序阅读这些 JDBC 教程以便更好地理解。
- JDBC 示例JDBC API 帮助我们编写与数据库驱动程序松散耦合的代码。本文介绍了我们拥有的不同类型的数据库驱动程序以及哪一种是最常用的及原因。这是一个很好的起点文章,可以了解数据库连接、语句和结果集。它们如何一起执行特定的数据库操作。本文还向您展示了如何编写 JDBC 程序以使其与数据库驱动程序松散耦合,这有助于通过仅进行配置更改轻松地从一个数据库服务器切换到另一个数据库服务器。
- JDBC Statement vs PreparedStatement JDBC API 提供了与数据库通信的两种方式 –
Statement
和PreparedStatement
。Statement 使用简便,但可能导致 SQL 注入,这是攻击应用程序的常见方式。本文清楚地展示了如何使用 SQL Statements 执行 SQL 注入,以及为什么我们应该使用PreparedStatement
来防止 SQL 注入攻击。此文进一步解释了使用 PreparedStatement 相较于 Statement 的一些主要优势,如缓存、面向对象编程和代码的优雅外观。 - JDBC PreparedStatement IN 子句替代方案 由于 JDBC PreparedStatement 是预编译的,无法直接与 IN 子句一起使用。与其回到 Statement,不如采用一些替代方法来克服 Prepared Statement 的这个缺点。本文提供了四种不同的替代方法,支持在预处理语句中使用 IN 子句。您应该阅读它,因为您永远不知道什么时候会用到它,而且这也是与 JDBC 相关的最常问的面试问题之一。
- JDBC批处理如果你正在处理大量数据并且必须执行许多查询,逐个执行并不是一个好主意。JDBC提供了批处理支持,比逐个处理查询要快得多。本文向你展示了如何为批处理编写程序。它进一步讨论了如果批处理中的一个查询抛出异常应该怎么办。
- JDBC CallableStatement示例我们可以使用JDBC API的CallableStatement来执行存储过程。Oracle数据库提供了游标和数据库对象,我们可以在存储过程中使用它们作为IN/OUT参数。本教程提供了关于这些的具体细节,附带示例程序。
- JDBC 数据源示例 大多数情况下,我们不仅仅是在寻找数据库连接。创建连接是一个繁重的过程,让程序的每个部分都创建自己的连接并不是一个好主意。这可能导致资源匮乏和性能下降。这就是为什么在大多数企业应用程序中我们使用连接池的原因。大多数数据库驱动程序提供了可以在连接池中使用的 DataSource 实现类。本教程提供了 MySQL 和 Oracle DataSource 的示例以及如何使用它们的方法。本文还提供了有关 Apache DBCP 的详细信息,它作为对不同 DataSource 实现的封装,以实现松耦合。
- JDBC 事务管理 当我们有一组查询要执行并且我们希望确保要么全部执行,要么全部不执行时,事务管理就变得重要了。我们可以将连接的自动提交设置为 false,以实现事务管理。如果一切顺利,我们可以提交事务;如果出现任何异常,我们可以回滚整个事务。它还解释了我们可以使用的 Savepoint,以回滚到事务中的特定点。您可以将 Savepoint 想象成事务中的里程碑。
- Tomcat JNDI DataSource 示例 大多数 Servlet 容器都支持 JNDI 资源用于 DataSource,我们可以将事务管理和连接池任务卸载到容器中。本文解释了在 Apache Tomcat 服务器中配置 DataSource 的不同方法,并使用 JNDI 上下文查找获取 DataSource 并进行操作的方式。
- Spring JDBC 和 JdbcTemplate 示例 本文提供了与 Spring 框架集成 JDBC 的详细信息。我们可以选择使用标准的 JDBC API,也可以获得 Spring JdbcTemplate 的好处,它帮助我们消除了所有与 JDBC 相关的样板代码,例如打开/关闭连接、语句、结果集等。
- Spring 事务管理 Spring 提供了内置的事务管理支持。事务管理是一个横切关注点,Spring AOP 方法与声明式事务管理非常简单而优雅。一个示例项目解释了 Spring 框架中用于 JDBC 操作的事务管理的不同方面。
- Spring DataSource JNDI 示例 Spring框架非常受欢迎,因为它为大多数常见任务提供了基于配置的解决方案。这就是为什么Spring框架提供了简单的配置来查找JNDI上下文并获取由Servlet容器定义的DataSource。一个带有Spring MVC示例项目的教程,向您展示如何轻松实现。
- JSF JDBC集成示例 JSF是最广泛使用的基于组件的框架之一。本教程解释了如何将JDBC API与JSF框架集成。
- JDBC面试问题与答案 一个包含40个与JDBC相关的面试问题及详细答案的集合,帮助您在Java面试中应对各种类型的JDBC问题。
I will be adding more posts in JDBC tutorial, so please bookmark the post for future reference too.
Source:
https://www.digitalocean.com/community/tutorials/jdbc-tutorial