备忘录:Java连接SqlServer2008数据库中遇到的各种问题以及解决方法
来源:互联网 发布:怎么改淘宝手机号 编辑:程序博客网 时间:2024/04/30 08:15
首先下载JDBC:下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=21599
下载 完成后,是个exe文件,点击运行,会提示你选择解压目录:如下图:
点击Browse,随便选择一个文件夹就好
解压完成后,进入 <你解压到得目录>\sqljdbc_3.0\chs,里边有两个我们需要的东东
一个是:sqljdbc.jar,另外一个是sqljdbc4.jar
这两个有什么区别我也没研究,当我在eclipse中新建了一个项目,适用第一个包时,报错了,说是什么该包不支持jre1.7,让我用带4的那个,我用了就没报错了。
接下来是在java代码中用两种方式连接sqlserver2008数据库,一种是sa身份验证模式,另外一种是混合身份验证模式:
第一种:sa身份验证模式,用下边java代码的url
Java代码:
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public class Test {public static void main(String args[]) {// Create a variable for the connection string.String connectionUrl = "jdbc:sqlserver://localhost:1433;"+ "databaseName=AdventureWorks;integratedSecurity=true;";String url = "jdbc:sqlserver://127.0.0.1:1368;databaseName=mydb;user=sa;password=qiaoning";//sa身份连接String url2 = "jdbc:sqlserver://127.0.0.1:1368;databaseName=mydb;integratedSecurity=true;";//windows集成模式连接// Declare the JDBC objects.Connection con = null;Statement stmt = null;ResultSet rs = null;try {// Establish the connection.System.out.println("begin.");Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");con = DriverManager.getConnection(url2);System.out.println("end.");// Create and execute an SQL statement that returns some data.String SQL = "SELECT TOP 10 * FROM aud_t_basis";stmt = con.createStatement();rs = stmt.executeQuery(SQL);// Iterate through the data in the result set and display it.while (rs.next()) {System.out.println(rs.getString(4) + " " + rs.getString(6));}}// Handle any errors that may have occurred.catch (Exception e) {e.printStackTrace();}finally {if (rs != null)try {rs.close();} catch (Exception e) {}if (stmt != null)try {stmt.close();} catch (Exception e) {}if (con != null)try {con.close();} catch (Exception e) {}}}}
第二种:混合身份验证模式,用上边java代码的url2
代码很简单我就不多说了,这个代码的来源是刚才你解压的文件的 sqljdbc_3.0\chs\help\samples\connections 目录下connectURL.java文件,整体基本没动,就是改了改url和表名。
如果用集成模式可能会出现的问题:
如下:
警告: Failed to load the sqljdbc_auth.dll cause :- no sqljdbc_auth in java.library.pathcom.microsoft.sqlserver.jdbc.SQLServerException: 没有为集成身份验证配置驱动程序。at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1352)at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2329)at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:1905)at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:1893)at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575)at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1400)at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1045)at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:817)at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)at java.sql.DriverManager.getConnection(Unknown Source)at java.sql.DriverManager.getConnection(Unknown Source)at Test.main(Test.java:26)Caused by: java.lang.UnsatisfiedLinkError: no sqljdbc_auth in java.library.pathat java.lang.ClassLoader.loadLibrary(Unknown Source)at java.lang.Runtime.loadLibrary0(Unknown Source)at java.lang.System.loadLibrary(Unknown Source)at com.microsoft.sqlserver.jdbc.AuthenticationJNI.<clinit>(AuthenticationJNI.java:32)at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:1902)... 11 more
解决方法:
找到你刚才的解压目录:进入sqljdbc_3.0\chs\auth\x64,我的是64位系统,如果是32位就x86,将一个名为sqljdbc_auth.dll的文件拷贝到:C:\Windows\System32下,就好了
还有另外一个很恶心的问题就是sqlserver2008用的是动态端口,需要你配置一下:如下图:
选择 SQL Server 配置管理器
进入如下界面:
把TCP动态端口中的0都删掉,留空;然后把列表拉到最下边,配置一个固定端口,以后你连接数据库就用这个端口就可以了:如下图:
我用的是1368,可以随便改,只要不用系统预留的端口就行。
好了,我遇到的问题大概就这么多了。希望可以帮助大家。也自己做一个备忘录。
- 备忘录:Java连接SqlServer2008数据库中遇到的各种问题以及解决方法
- 那些年我们装过的数据库---盘点sqlserver2008安装时遇到的各种的问题(持续更新中)
- Java程序中遇到的乱码问题以及解决方法
- Java程序中遇到的乱码问题以及解决方法
- Java连接mysql中遇到的一些问题及解决方法
- Java连接mysql中遇到的一些问题及解决方法
- java连接sqlserver2008数据库
- JAVA 连接SqlServer2008数据库
- Java连接SqlServer2008数据库
- 使用JDBC连接数据库遇到的问题,以及查找到的解决方法
- 学习中遇到的问题以及解决方法
- Java连接SQLServer2008数据库的过程以及操作数据库的代码
- java连接access数据库中遇到的一些问题
- tomcat 连接池配置,以及遇到的各种问题,解决办法
- java连接sqlserver2008各种坑的解决参考方法
- Java中各种数据库的来连接
- Java中连接各种数据库的方法
- 数据库sql server安装使用遇到的问题以及解决方法
- The Annotated Qt之QObject分析(1)
- JavaScript DOM高级程序设计笔记__(二)----第四章 响应用户操作和事件
- Httpclient默认连接数导致性能瓶颈问题
- mysql添加(删除)用户方法
- 垃圾回收--native_stderr.log
- 备忘录:Java连接SqlServer2008数据库中遇到的各种问题以及解决方法
- U-boot移植 (v2012.04.1 S3C2440平台) (四) usbslave 下载功能实现
- 【基础知识回顾】并发与并行的区别
- Oracle if else 语句的写法实例
- MFC(继续画图,孙鑫C++第十讲笔记整理)
- getevent/sendevent源代码
- 使用MinGW 编译python扩展模块
- paip.SVN merge分支合并到主干
- 第05章 数组 05 练习3