在本教程中,我们学习如何在 Java 中设置数据源。 我们使用 MySQL 数据库系统。
我们使用 MySQL Connector / J 驱动程序。 它是 MySQL 的官方 JDBC 驱动程序。
用 Java 创建到数据库的连接有两种基本方法:a)使用驱动程序管理器,b)使用数据源。 与驱动程序管理器相比,数据源具有几个优点:
- 它支持分布式交易
- 它提供了一种连接池技术
- 它可以由服务器(即应用外部)进行管理
当在 Java 类中创建和关闭连接时,驱动程序管理器会影响应用性能。 驱动程序管理器可用于简单的测试应用中。 对于复杂的应用,始终建议使用数据源。
通常,将基于 Java 命名和目录接口(JNDI)API 向实现数据源接口的对象注册命名服务。
JDBC
JDBC 是 Java 编程语言的 API,用于定义客户端如何访问数据库。 它提供了查询和更新数据库中数据的方法。 JDBC 面向关系数据库。 从技术角度来看,API 是java.sql
包中的一组类。 要将 JDBC 与特定数据库一起使用,我们需要该数据库的 JDBC 驱动程序。
MySQL
MySQL 是领先的开源数据库管理系统。 它是一个多用户,多线程的数据库管理系统。 MySQL 在网络上特别流行。 MySQL 有两个版本:MySQL 服务器系统和 MySQL 嵌入式系统。
我们创建一个新的testdb
数据库。 在本教程中,我们只需要一个数据库对象。 我们将不使用表格。 我们将使用SELECT VERSION()
语句获取 MySQL 数据库的版本。
命令行应用
在此示例中,我们使用命令行 Java 应用连接到数据库。
Figure: Project structure
这就是 NetBeans 中项目结构的样子。
MysqlDataSource
是用于创建数据源的类。
db.properties
这些是 MySQL 数据库的属性。 db.properties
文件位于此项目的src/resources
子目录中。
ComLineDSEx.java
在此示例中,我们使用数据源连接到数据库并获取 MySQL 的版本。
从具有FileInputStream
类的db.properties
文件中读取数据库属性。
创建MysqlConnectionPoolDataSource
并设置数据源属性。
使用getConnection()
方法从数据源创建连接对象。
创建一条 SQL 语句。 SELECT VERSION()
命令返回 MySQL 的版本。
查询被执行。 它返回一个结果集。
我们从结果集中获取第一个值,并将其打印到控制台。
最后,资源被释放。
Tomcat 中的 Web 应用
我们创建了一个 Web 应用,它将检索 MySQL 的版本。 该应用已部署在 Tomcat 上。
Figure: Project libraries
在我们的项目中,我们使用 JSTL 和 MySQL 驱动程序 JAR。 JavaServer Pages 标准标记库(JSTL) 是有用的 JSP 标记的集合,这些标记提供了许多 JSP 文件所共有的核心功能。
context.xml
对于 Tomcat Web 服务器,我们在context.xml
文件中创建一个新资源。 该文件位于META-INF
目录中。
web.xml
然后,在web.xml
文件中,创建对资源的引用。 在我们的应用中,我们将使用逻辑名称jdbc/testdb
引用数据源。
index.jsp
index.jsp
文件重定向到Version
Servlet。
showVersion.jsp
showVersion.jsp
是一个 UI 元素,用于显示从数据库检索的数据。
JSTL 的<c:out>
标记用于输出响应的值。
Version.java
Version
Servlet 调用服务方法来获取 MySQL 的版本。 返回的值设置为请求对象的属性。
最后,Servlet 指向showVersion.jsp
文件。
调用服务方法来获取 MySQL 的版本。
使用setAttribute()
方法将版本值设置为请求对象。
我们调度到showVersion.jsp
文件。
DBVersionService.java
DBVersionService
是一个服务类,其中包含获取 MySQL 版本的方法。
数据源是使用ServiceLocator
类创建的。
在这里,我们有用于连接到数据库并执行 SQL 语句的 JDBC 代码。
ServiceLocator.java
ServiceLocator
通过其给定的 JNDI 名称查找数据源,并将其返回给调用方。
该应用将响应一个包含 MySQL 版本的 HTML 页面。
这是 Java 教程中的数据源。