最近我开始支持 Microsoft JDBC Driver for SQL server,它能够使 Java 应用连接到微软 SQL Server。由于从未接触过 Java 开发,所以写下这篇文章记录如何创建一个最简单的控制台 Java 程序通过 JDBC Driver 来连接 SQL Server。
下载并安装 JDK:https://www.oracle.com/technetwork/java/javase/downloads/index.html,本文将使用 JDK 8 (8u181) 因为它是官方推荐的 JDBC Driver 7.0 的 Java 运行时版本。
由于我们需要用到
javac.exe
来编译 Java 程序,为了在任何地方都能运行javac.exe
,需要把C:\Program Files\Java\jdk1.8.0_181\bin
添加到系统环境变量:Path
。下载Microsoft JDBC Driver 7.0 for SQL Server:https://www.microsoft.com/en-us/download/details.aspx?id=57175。
运行
sqljdbc_7.0.0.0_enu.exe
并将其内容解压至任何地方,这里我们解压至:C:\jdbc7
。解压后,在 Java8 中使用的 JDBC Driver 可以在
C:\jdbc7\sqljdbc_7.0\enu\mssql-jdbc-7.0.0.jre8.jar
找到,为了让编译器能够找到 JDBC Driver,我们需要把这个路径加到名为classpath
的系统变量中去。创建 JDBC 测试程序文件夹:
C:\jdbc-app
。保存下面的程序代码至:
C:\jdbc-app\JDBCTest.java
。import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCTest { public static void main(String[] args) { String connectionUrl = "jdbc:sqlserver://192.168.199.221:1433;databaseName=TestDB;integratedSecurity=true"; try (Connection con = DriverManager.getConnection(connectionUrl); Statement stmt = con.createStatement();) { String SQL = "SELECT TOP 10 * FROM Person;"; ResultSet rs = stmt.executeQuery(SQL); while (rs.next()) { System.out.println(rs.getString("Name")); } } catch (SQLException e) { e.printStackTrace(); } } }
在测试程序中,我们使用集成身份认证来连接远程的 SQL Server。集成身份认证需要用到
sqljdbc_auth.dll
。我们可以在C:\jdbc7\sqljdbc_7.0\enu\auth\x64
(64 位系统)或C:\jdbc7\sqljdbc_7.0\enu\auth\x86
(32 位系统)中找到该 DLL,然后复制sqljdbc_auth.dll
到C:\jdbc-app
。将
C:\jdbc-app
添加到classpath
。打开 CMD,在
C:\jdbc-app
下运行javac JDBCTest.java
来编译我们的 JDBC 测试程序,编译完了会创建出JDBCTest.class
。运行
java JDBCTest
来测试程序的输出。C:\jdbc-app>javac JDBCTest.java C:\jdbc-app>java JDBCTest John Marry Kevin C:\jdbc-app>