JDBC连接数据库SQLServer的几个问题

时间:2021-09-07 05:00:48
       JDBC可以连接很多数据库,比如MySQL、MS SQLServer、ORACLE,只需要修改连接的数据库驱动程序、服务器地址、用户名和密码,源代码几乎不需要怎么修改,非常灵活,所以改换数据库是非常方面的事情。
       讲课是用的MySQL,由于大家前期学过MS SQLServer,下面就以JDBC连接MS SQLServer为例来说明在连接的时候需要注意的几个问题:

      1.下载JDBC连接MS SQLServer的驱动程序

     下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=11774

     JDBC连接MS SQLServer的驱动程序:sqljdbc_6.0.rar

      下载解压以后JDBC Drivers 6.0 and 4.2包含如下JAR包: sqljdbc.jar, sqljdbc4.jar, sqljdbc41.jar, and sqljdbc42.jar,另外还包括一些文件夹,其中有两个文件夹auth\x64或auth\x86,里面有一个sqljdbc_auth.dll,在使用Windows身份验证模式下连接的时候要用到,需要将sqljdbc_auth.dll拷贝到C:\Windows\System32目录下。

如何使用这几个JAR包,请访问微软下面的网址:

https://msdn.microsoft.com/en-us/library/ms378422(v=sql.110).aspx

 

如果java使用的jdk1.8,就使用sqljdbc42.jar。

 

        2.SQLServer登录的问题

        SQLServer有两种登录模式:Windows身份验证和SQL Sever身份验证。同学们一般都使用的是Windows 身份验证模式。推荐同学们使用SQL Sever身份验证,我们开发中,一般都使用这种登录模式。

       这里就遇到改变登录模式的问题。

       将Windows身份验证登录改变成SQL Sever身份验证,请阅读下面的博客:

       http://blog.csdn.net/zjx86320/article/details/9745669

        3.JDBC连接SQLServer的两种登录模式的主要代码

        只需要修改实验视频讲解的DBUtil.java就可以了,其修改如下:


public class DBUtil {



//MySQL数据库驱动程序

/*

private static String driverName = "com.mysql.jdbc.Driver";



private static String dbUserName = "root";

private static String dbPassword = "264309";

private static String dbUrl = "jdbc:mysql://localhost:3306/db_student?Unicode=true&characterEncoding=UTF-8";

*/



// 无论是采用Windows身份验证还是SQL Sever身份验证,JDBC连接SQLServer数据库驱动程序都是一样的

private static String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";



//登录模式采用SQL Sever身份验证

private static String dbUserName = "sa";

private static String dbPassword = "264309";

private static String dbUrl = "jdbc:sqlserver://localhost:1433;DatabaseName=student";



//JDBC连接SQLServer数据库,登录模式采用Windows身份验证的服务器地址,数据库名,主要加:integratedSecurity=true,集成验证,不需要用户名和密码

//String dbUrl = "jdbc:sqlserver://localhost:1433;integratedSecurity=true;DatabaseName=student";



public Connection getConn() throws Exception {

Class.forName(driverName);



//登录模式采用SQL Sever身份验证,也就是用用户名和密码的

Connection conn = DriverManager.getConnection(dbUrl, dbUserName, dbPassword);



//登录模式采用Windows身份验证

//Connection conn = DriverManager.getConnection(dbUrl);

return conn;

}



public void closeConn(Connection conn, Statement stmt) throws SQLException {

if (stmt != null) {

stmt.close();

if (conn != null) {

conn.close();

}

}

}



}

http://course.jcut.edu.cn/G2S/Template/View.aspx?courseId=9&topMenuId=111981&action=view&type=&name=&menuType=1&curfolid=116820