1. 前言
Java Database Connectivity(JDBC)是一种用于编程语言Java中连接各种关系型数据库的标准API。在Java中使用JDBC连接数据库可以轻松地进行数据交互,而不必担心与特定数据库交互细节的问题。在本文中,我们将介绍如何使用JDBC连接SQLServer数据库。
2. 准备工作
2.1 下载SQL Server JDBC驱动程序
在使用JDBC连接SQL Server数据库之前,需要下载SQL Server JDBC驱动程序,可以从Microsoft官方网站下载,并将其添加到项目中。
下载链接:https://www.microsoft.com/en-us/download/details.aspx?id=11774
将下载好的驱动包文件复制到项目目录下,并在IDE中右键单击项目名 -> Build Path -> Configure Build Path -> Libraries -> Add External JARs,选择之前复制的驱动包文件。
2.2 创建SQLServer数据库
在本示例中,我们将使用默认的SQLServer数据库实例,如果尚未创建数据库,则可以按照以下步骤创建数据库:
打开SQL Server Management Studio,右击“数据库”,选择“新建数据库”
在“新建数据库”对话框中,输入数据库名称和其他相关信息,单击“确定”按钮。
3. 创建JDBC连接
在Java中使用JDBC连接数据库,需要使用com.microsoft.sqlserver.jdbc.SQLServerDriver驱动程序类,我们需要导入该类并使用如下代码创建数据库连接:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class SQLServerJDBC {
public static void main(String[] args) {
// 数据库连接信息
String url = "jdbc:sqlserver://localhost:1433;databaseName=test";
String user = "sa";
String password = "123456";
Connection conn = null;
try {
// 加载驱动程序类
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// 建立数据库连接
conn = DriverManager.getConnection(url, user, password);
if (conn != null) {
System.out.println("数据库连接成功");
} else {
System.out.println("数据库连接失败");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
其中,url参数表示数据库连接字符串,格式为jdbc:sqlserver://<服务器名称>:<端口号>;databaseName=<数据库名称>;<可选属性>。在本示例中,我们使用了SQL Server的默认实例,因此服务器名称为localhost,端口号为1433,数据库名称为test。
4. 查询数据库
连接到SQL Server数据库后,可以执行各种查询操作。在本节中,我们将介绍如何执行SELECT查询并将结果打印到控制台。
4.1 SELECT查询
以下示例演示如何使用JDBC执行SELECT查询,并将结果打印到控制台:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class SQLServerJDBC {
public static void main(String[] args) {
// 数据库连接信息
String url = "jdbc:sqlserver://localhost:1433;databaseName=test";
String user = "sa";
String password = "123456";
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 加载驱动程序类
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// 建立数据库连接
conn = DriverManager.getConnection(url, user, password);
// 创建Statement对象并执行SELECT查询
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM Employee");
// 循环遍历ResultSet对象并打印结果
while (rs.next()) {
System.out.println("ID: " + rs.getInt("ID"));
System.out.println("Name: " + rs.getString("Name"));
System.out.println("Age: " + rs.getInt("Age"));
System.out.println("--------------------");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
上面代码中,我们使用了一个SELECT查询来检索Employee表中的信息,并使用ResultSet对象循环遍历结果,并打印每行数据到控制台。
4.2 INSERT、UPDATE和DELETE操作
除了SELECT查询外,JDBC还支持INSERT、UPDATE和DELETE等操作,以下是相应SQL语句的示例:
-- INSERT
INSERT INTO Employee (ID, Name, Age) VALUES (1, 'Tom', 23)
-- UPDATE
UPDATE Employee SET Age = 24 WHERE Name = 'Tom'
-- DELETE
DELETE FROM Employee WHERE ID = 1
要执行非SELECT操作,可以使用以下代码:
stmt = conn.createStatement();
int resultCount = stmt.executeUpdate("INSERT INTO Employee (ID, Name, Age) VALUES (1, 'Tom', 23)");
if (resultCount > 0) {
System.out.println("插入成功");
} else {
System.out.println("插入失败");
}
在执行非SELECT操作时,executeUpdate()方法返回一个整数,该整数表示影响的行数。
5. 结论
本文介绍了如何使用JDBC连接SQLServer数据库,并执行各种类型的查询操作。JDBC提供了一种简单的方式来连接数据库,可以轻松地进行数据交互,可以使我们编写更加高效的Java程序和Web应用。