由于JDK1.8移除了ODBC相关的部分,而将jdk1.8改为1.7也十分复杂(需要修改很多代码),因此可以采用以下的方案
一、配置ODBC数据源(Windows)
-
打开ODBC数据源设置(这里注意根据数据源选择对应的设置),选错会导致无法连接到数据库,我选择的是64位的。(如果不确定也可以先选择一种试一下,不成功的话换另一种)
-
在
系统DNS
中单击添加
按钮
-
选择
SQL Server Native Client 10.0
-
分别输入数据源名(数据库名)和IP地址
-
输入连接数据库的用户名和密码
-
单击下一步,到如下页面后,单击测试数据源
-
出现如下提示则说明测试成功
二、在Java8中使用JDBC-ODBC Bridge
需要的文件也可以从以下链接中获取:
链接:https://pan.baidu.com/s/1LywdcvzXypazELd0zkwBLg
提取码:r1s2
- 下载JDK 7 或者 JRE 7。(下载地址)
- 在
JRE\lib
目录找到rt.jar
。 - 直接解压或者重命名为
rt.zip
后解压。 - 复制
sun\jdbc
和sun\security\action
并保持文件夹的结构。应保留如下所示的文件夹结构:
Sun --> Security --> Action
--> JDBC
-
打开一个CMD窗口,在sun文件夹的父目录,运行如下命令:
jar -cvf jdbc.jar sun
这个命令会生成一个名为jdbc.jar
的文件。 -
将
jdbc.jar
放到jdk
的jre
的lib
目录下。
PS: 如果不成功,请尝试放在jdk
的jre
的lib
的ext
目录下!目前我是windows
环境的jdk
放在前者可以,linux
放在后者可以。
-
复制
jdbcodbc.dll
(下载地址)到jdk
的jre\bin
目录下。
注意:以上使用的jre
都是指jdk
中的jre
目录
-
重启项目。
三、连接SQLServer
public static void main(String[] args) throws SQLException, ClassNotFoundException {
Class<?> aClass = Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// 其中alicia为数据源名
String url = "jdbc:odbc:alicia";
// 其中sa为用户名,alicia为密码
Connection connection = DriverManager.getConnection(url,"sa","alicia");
}
//装载数据库
public MyOdbcConnection() throws Exception {
Class<?> aClass = Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println(aClass);
}
//建立数据库连接
public Connection getConnection(String url, String username, String password) throws SQLException {
// 其中alicia为数据源名
String url = "jdbc:odbc:alicia";
con = DriverManager.getConnection(url, username, password);
return con;
}
//关闭数据库连接
public void closeConnection(Connection con) {
try {
if (con != null) {
con.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void closepreparedStatement(PreparedStatement prepstment) {
try {
if (prepstment != null) {
prepstment.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void closeResultSet(ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}