JDBC 教程
欢迎阅读 JDBC 教程。Java数据库连接(JDBC) 是企业应用程序中使用最广泛的 API 之一。这是因为大多数应用程序都使用某种数据库连接。我最近发布了很多与基本 JDBC、DataSource 及其与 Spring Framework 集成相关的 JDBC 教程。
JDBC 教程
这是我之前发布的所有 JDBC 教程的索引帖。如果您是 JDBC 新手,那么您应该阅读这些 JDBC 教程,以便更好地理解。
- JDBC 示例JDBC API 帮助我们编写与数据库驱动程序松散耦合的代码。本文介绍了我们拥有的不同类型的数据库驱动程序,以及哪种驱动程序最常用以及原因。这是一篇很好的入门文章,可以了解数据库连接、语句和结果集。它们如何协同工作以执行特定的数据库操作。本文还向您展示了如何编写 JDBC 程序以使它们与数据库驱动程序保持松散耦合,这有助于只需更改配置即可轻松地从一个数据库服务器切换到另一个数据库服务器。
- JDBC 语句与 PreparedStatement JDBC API 提供了两种与数据库通信的方式 -
Statement
和PreparedStatement
。语句易于使用,但可能导致 SQL 注入,这是入侵任何应用程序的非常常见的方式。本文清楚地展示了如何使用 SQL 语句执行 SQL 注入以及我们为什么要使用它们PreparedStatement
来避免 SQL 注入攻击。本文进一步解释了使用 PreparedStatement 而不是 Statement 所获得的一些主要好处,例如缓存、面向对象编程和优雅的代码。 - JDBC PreparedStatement IN 子句替代方案由于 JDBC PreparedStatement 是预编译的,因此我们不能将其与 IN 子句一起使用。除了返回 Statement,我们还可以采用一些替代方法来克服 Prepared Statement 的这一缺点。本文提供了四种不同的替代方法,我们可以采用这些方法来支持带有预处理语句的 IN 子句。您应该阅读它,因为您永远不知道何时会需要它,而且这也是与 JDBC 相关的最常被问到的面试问题之一。
- JDBC 批处理如果您正在处理大量数据并且必须执行大量查询,那么逐个执行不是一个好主意。 JDBC 提供批处理支持,这比一次处理单个查询要快得多。 本文向您展示如何编写批处理程序。 它进一步讨论了如果批处理中的一个查询抛出异常该怎么办。
- JDBC CallableStatement Example We can use JDBC API CallableStatement to execute stored procedures. Oracle Database provides Cursors and DB Objects that we can use in stored procedures IN/OUT parameters. This tutorial provides specific details of these with example programs.
- JDBC DataSource Example Most of the times we are looking for more than a database connection. Creating a connection is a heavy process and it’s not a good idea to let every part of the program to create it’s own connection. This can lead to resource starvation and slow performance. That’s why we use Connection Pooling in most of the enterprise application. Most of the database drivers provide DataSource implementation classes that can be used in the connection pool. This tutorial provide example of MySQL and Oracle DataSource and how to use them. The article also provide details about Apache DBCP that works as a wrapper around the different DataSource implementations to achieve loose coupling.
- JDBC Transaction Management Transaction Management is important when we have a group of queries to execute and we want to make sure either all of them executes or none of them. We can set the connection auto commit to false, to achieve transaction management. If everything goes fine, we can commit the transaction or if there are any exceptions we can rollback the whole transaction. It also explains about the Savepoint that we can use to rollback to a particular point in the transaction. You can think of Savepoint as milestones in the transaction.
- Tomcat JNDI DataSource Example Most of the servlet containers supports JNDI resources for DataSource that we can use to offload the transaction management and connection pooling tasks to the container. This article explains about different ways through which we can configure DataSource in Apache Tomcat server and use JNDI context lookup to get the DataSource and work with it.
- Spring JDBC and JdbcTemplate Example This article provides details of JDBC integration with Spring Framework. We can either chose to use standard JDBC API or get the benefits of Spring JdbcTemplate that helps us in removing all the boiler plate code that comes with JDBC, for example open/close connection, statement, result sets etc.
- Spring Transaction Management Spring provides built-in support for transaction management. Transaction management is a cross-cutting concerns and Spring AOP approach with declarative transaction management is very simple and elegant to use. A sample project explaining different aspects of transaction management in Spring Framework for JDBC operations.
- Spring DataSource JNDI 示例Spring 框架非常流行,因为它为大多数常见任务提供了基于配置的解决方案。这就是为什么 spring 框架提供简单的配置来查找 JNDI 上下文并获取由 servlet 容器定义的 DataSource。本教程使用 Spring MVC 示例项目向您展示如何轻松完成此操作。
- JSF JDBC 集成示例JSF 是最广泛使用的基于组件的框架之一。本教程介绍如何将 JDBC API 与 JSF 框架集成。
- JDBC 面试问题和答案收集了 40 个与 JDBC 相关的面试问题并附有详细答案,以帮助您在 Java 面试中攻克不同类型的 JDBC 问题。
我将在 JDBC 教程中添加更多帖子,因此请将帖子添加为书签以供将来参考。