1. 概述
Java数据库连接(JDBC)是一个用于执行各种操作的Java API,可以通过驱动程序与数据库进行通信。JDBC通过在Java应用程序和数据库中间建立连接来提供这种通信,从而允许Java应用程序在数据库中执行各种操作,例如:从数据库中检索数据,更新数据,添加数据等。在这篇文章中,将阐述MS SQL数据库连接之JDBC驱动的实现。
2. JDBC驱动介绍
Java应用程序通过特定类型的JDBC驱动程序与数据库进行通信。JDBC驱动程序是一种软件组件,它提供了Java应用程序与数据库之间的连接。JDBC驱动程序可分为以下四种类型:
2.1 第一类JDBC驱动程序:JDBC-ODBC桥接器驱动程序
JDBC-ODBC桥接器驱动程序实际上是JDBC API规范和ODBC(开放数据连接)API规范之间的桥梁。当应用程序使用JDBC-ODBC桥接器驱动程序连接到数据库时,JDBC API规范将访问ODBC驱动程序来进行操作。
2.2 第二类JDBC驱动程序:本地API驱动程序
本地API驱动程序是由JDBC API规范和JDBC驱动程序供应商提供的本机代码库组成的。本地API驱动程序可直接连接到数据库并提供高性能。本地API驱动程序是特定于平台的,因此,为了实现跨平台性,需要安装适当的本机API库(如Windows DLL或UNIX SO文件)。
2.3 第三类JDBC驱动程序:网络协议驱动程序
网络协议驱动程序(或称为Type 3驱动程序)通过中间层来访问数据库。它们提供了一种单独的中间层或服务器来管理客户机和数据库之间的通信。网络协议驱动程序在服务器上运行,可以通过Internet或局域网连接到客户端和数据库。
2.4 第四类JDBC驱动程序:本地协议驱动程序
本地协议驱动程序(或称为Type 4驱动程序)是完全由Java编写的驱动程序,它们被直接安装在客户机上,不需要其他库或组件。由于本地协议驱动程序是由Java编写的,因此它们可实现跨平台性。本地协议驱动程序通过网络协议直接将请求发送到数据库。
3. MS SQL JDBC驱动程序
MS SQL JDBC驱动程序是一个Type 4 JDBC驱动程序,它提供了与Microsoft SQL Server数据库之间的连接。该驱动程序可通过Java编写的应用程序直接连接到SQL Server数据库并执行各种操作。
3.1 下载并安装MS SQL JDBC驱动程序
可以在Microsoft官网上下载MS SQL JDBC驱动程序的最新版本,下载地址为:https://docs.microsoft.com/zh-cn/sql/connect/jdbc/microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15
在下载并解压驱动程序后,将驱动程序中的jar文件添加到Java应用程序的类路径中。示例如下:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://localhost:1433;databaseName=TestDB;user=UserName;password=*****;";
Connection conn = DriverManager.getConnection(url);
3.2 连接MS SQL Server数据库
要连接到MS SQL Server数据库,请使用以下JDBC URL形式:
jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
其中:
serverName:SQL Server的名称或IP地址。
instanceName(可选):与SQL Server实例关联的名称。
portNumber(可选):SQL Server上的端口号。默认情况下,端口号为1433。
property=value(可选):指定其他属性,例如登录名和密码。
示例如下:
String url = "jdbc:sqlserver://localhost:1433;databaseName=TestDB;user=UserName;password=*****;";
Connection conn = DriverManager.getConnection(url);
3.3 查询数据
可以使用JDBC的Statement对象或PreparedStatement对象从MS SQL Server数据库中检索数据。示例如下:
// 使用Statement对象检索数据
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM Persons");
while (rs.next()) {
String name = rs.getString("name");
int age = rs.getInt("age");
}
// 使用PreparedStatement对象检索数据
PreparedStatement pstmt =
conn.prepareStatement("SELECT * FROM Persons WHERE name=?");
pstmt.setString(1, "John");
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
int age = rs.getInt("age");
}
3.4 更新数据
可以使用JDBC的Statement对象或PreparedStatement对象向MS SQL Server数据库中更新数据。示例如下:
// 使用Statement对象更新数据
Statement stmt = conn.createStatement();
String sql = "UPDATE Persons SET age=30 WHERE name='John'";
stmt.executeUpdate(sql);
// 使用PreparedStatement对象更新数据
PreparedStatement pstmt =
conn.prepareStatement("UPDATE Persons SET age=? WHERE name=?");
pstmt.setInt(1, 30);
pstmt.setString(2, "John");
pstmt.executeUpdate();
4. 结论
JDBC是一种提供Java应用程序与数据库之间通信的API。MS SQL JDBC驱动程序是一种Type 4 JDBC驱动程序,它提供了与Microsoft SQL Server数据库之间的连接。使用JDBC API,可以轻松地执行各种操作,例如查询和更新数据。此外,JDBC API可实现跨平台性,使开发人员能够在不同的操作系统上运行相同的Java应用程序。