http://blog.163.com/jackie_howe/blog/static/19949134720125173539380/
Jackie新浪微博:http://weibo.com/sincerecorner加博友关注他
Eclipse连接SQL Server 2008数据库
在连接数据库之前必须保证SQL Server 2008是采用SQL Server身份验证方式而不是windows身份验证方式。如果在安装时选用了后者,则重新设置如下:
http://blog.163.com/jackie_howe/blog/static/19949134720122261121214/
SQL Server 2008装好后,默认协议是没有开启的,可打开配置工具下的 SQL Server配置管理器中开启,如下2图:
保证SQL Server 2008是采用SQL Server身份验证方式下开始配置:
一、SQL Server 2008的配置:
1、安装好SQL Server 2008后,运行 开始 → 所有程序 → Microsoft SQL Server 2008 → 配置工具 → SQL Server配置管理器,在打开的窗口的左边找到 MSSQLSERVER的协议,在右边右单击 TCP/IP,选择 已启用。如果Named Pipes 未启用也设为启用。如图5所示:
图5
2、双击图5右边的 TCP/IP,在弹出的窗口中选择 IP地址 标签,把 IPAll 中的 TCP端口 设成 1433,并将上方所有的 已启用 选项设置成 是。如图6所示:
图6
4、然后重启数据库,重启完毕后,接下来使用命令测试1433端口是否打开。
5、开始菜单 → 运行cmd → 在命令提示符下输入:telnet 127.0.0.1 1433,(注意telnet与127之间有空格,1与1433之间有空格)若提示“不能打开到主机的连接,在端口 1433: 连接失败”,则说明1433端口没有打开,需要重新进行以上配置。若连接成功,显示如图8所示:
图8
注:Windows7如何开启telnet服务http://blog.163.com/jackie_howe/blog/static/199491347201251723939691/
二、环境变量CLASSPATH配置:
1、下载Microsoft JDBC Driver for SQL Server
http://www.microsoft.com/zh-cn/download/details.aspx?id=11774 (最新版4.0)
http://www.microsoft.com/zh-cn/download/details.aspx?id=21599 (3.0版)
http://www.microsoft.com/zh-cn/download/details.aspx?id=2505 (2.0版)
下载JDBC的驱动文件,例如下载得到的文件是sqljdbc_4.0.2206.100_chs.exe,解压文件。设将其解压到C:\Microsoft JDBC Driver 4.0 for SQL Server目录下。
2、在桌面上右击 我的电脑,依次选择 属性 → 高级 → 环境变量,在 系统变量中双击 CLASSPATH变量,追加“;C:\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\chs\sqljdbc4.jar”若不存在应当新建CLASSPATH变量,并且将其值设为“C:\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\chs\sqljdbc4.jar”。如图9示:
图9
3、连续点击 确定 以退出环境变量配置。
三、使用Eclipse测试连接SQL Server2008数据库:
1、打开SQL Server 2008,在其中新建数据库 Test,然后退出SQL Server 2008。
2、运行Eclipse,新建一个Java Project 名为 Test。
3、右单击工程名,依次选择 Build Path → Configure Build Path,在打开的窗口的右边选择 Libraries标签,然后单击 Add External JARs,找到 sqljdbc4jar 文件并打开,然后单击 OK 完成构建路径的配置。如图10
图10
提示:也可以把sqljdbc4jar类 放到jre/lib/ext下,并放到tomcat/lib下
这样就可以应用到所有jsp文件,减少对每个项目进行sqljdbc4jar的加载;
4、在Test中新建包pkg,在pkg中新建一个类Main,在其中输入代码如下:
package pkg;
}
import java.sql.*;
public class Main {
public static void main(String [] args)
{
String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=填写你的数据库名";
String userName="填写你的用户名,我的是sa";
String userPwd="填写你的密码";
try
{
Class.forName(driverName);
System.out.println("加载驱动成功!");
}catch(Exception e){
e.printStackTrace();
System.out.println("加载驱动失败!");
}
try{
Connection dbConn=DriverManager.getConnection(dbURL,userName,userPwd);
System.out.println("连接数据库成功!");
}catch(Exception e)
{
e.printStackTrace();
System.out.print("SQL Server连接失败!");
}
}
5、点击右键,选择run as——>Java Application,出现下图11则连接成功!
图11
历史上的今天
评论
点击登录|昵称:取消换一张11-18 17:37Dragon运行结果如下,该怎么改:
加载驱动成功!
SQL Server连接失败!com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“Connection refused: connect。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
回复06-11 11:16uloveit 回复Jackie安装过程会不会出现这样的问题?回复11-18 17:36Dragon 回复Jackie
该改的我都改了,但是出现这样的错误
加载驱动成功!
SQL Server连接失败!com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“Connection refused: connect。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
回复06-11 13:421134575480加载驱动成功!com.microsoft.sqlserver.jdbc.SQLServerException: 无法打开登录所请求的数据库 "2012-20130110GW"。登录失败。 ClientConnectionId:fce83890-c29e-45cd-9361-c5a03905009eSQL Server连接失败! at 回复06-11 13:421134575480 回复1134575480com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)回复06-11 13:431134575480 回复1134575480at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:254)at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:84)at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2908)at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2234)at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2220)at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)回复06-18 23:50Jackie 回复1134575480登陆失败,是不是数据库名字,或者数据库用户名密码什么的写错了。回复05-27 10:42buqiushejie特为提问注册此号。在第五步执行RUN AS后,出现了
加载驱动成功!com.microsoft.sqlserver.jdbc.SQLServerException: 用户 '填写你的用户名,我的是sa' 登录失败。 ClientConnectionId:f9fe365a-2f17-452d-9734-9799a1f2010cat com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:254)at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:84)at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2908)
求解答
回复05-28 00:32Jackie 回复buqiushejie你要填自己的用户名和密码啊回复05-26 00:37xiaomo可以叫一个朋友么?我需要你的帮助,QQ:1940705989
回复05-25 02:53桥回复04-22 10:07xuxujava.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriverat java.net.URLClassLoader$1.run(Unknown Source)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)at java.lang.ClassLoader.loadClassInternal(Unknown Source)at java.lang.Class.forName0(Native Method)回复04-24 13:36Jackie 回复xuxu缺少驱动,文章中“二、环境变量CLASSPATH配置”部分是不是哪里没做好。
回复04-18 22:40kou加载驱动成功!用户 'kou998' 登录失败。 ClientConnectionId:db93b534-4110-40d7-b176-f05a6c059adf这什么情况回复04-07 17:18kina0104非常感谢~~!特意注册了个号 来顶一下~~哈哈回复04-09 15:08Jackie 回复kina0104谢谢回复04-04 18:18qian_zhiwang你的程序是不是不对 我粘贴到myEclipse里之后显示有错误 少了一个“}”
回复04-09 15:08Jackie 回复qian_zhiwang嗯,谢谢,已修改。回复04-04 20:22qian_zhiwang谢谢 一下午 终于成功了
回复04-04 16:54qian_zhiwang求解 我没有打开数据库 就开始配置了 后来打不开服务器 服务器连接不上怎么办回复04-04 18:17qian_zhiwang 回复qian_zhiwang已经解决了
回复03-07 14:41韩梅你好,我按照你交的把一切都配置好了,可还是出现了无法连接的问题回复03-08 18:55Jackie 回复韩梅你好,对测试程序我新加了一些驱动是否装载正确的验证,你再试试,看报的错误是什么。回复2012-11-30 10:37洋洋你好!我的网络配置里找不到mssqlserver协议,请问这是怎么回事?回复2012-12-03 16:54Jackie 回复洋洋额,我也不清楚,是sql Server 2008吗?回复01-12 16:47liry2010de 回复Jackie我和她是一样的问题,是sql server 2008,但是也没有那个协议~回复01-31 17:17Jackie 回复liry2010de不清楚了,是官网下载的Sql Server吗?回复01-17 18:20java新手为什么要配置CLASSPATH变量,我不配置为什么也可以?回复01-31 17:16Jackie 回复java新手那你看下现在CLASSPATH里有上面的那个路径吗?回复2012-12-26 11:50凌云幽雨非常感谢回复2012-11-24 17:06646467988为什么我照你说的配置完之后,在运行你以上写的这个代码时,没有显示连接数据库成功呢??也没有报错,这到底是什么回事呢????回复2012-11-24 20:03Jackie 回复646467988你看一下控制台,什么都没有输出吗?
回复2012-12-03 17:17646467988 回复Jackie 后来我就一直运行,刷新,他就自己运行成功了。我也不知道是为什么。回复2012-11-30 18:48洋洋Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at pkg.Main.m回复2012-12-03 16:57Jackie 回复洋洋“ UnsupportedClassVersionError: Bad version number in .class file”不支持的类版本:错误的.class文件版本。看是jre的版本问题吧。回复2012-12-01 14:33Jackie.Lei居然我们的名字一样,呵呵 谢谢大哥 ,这段时间被导师逼得 哎回复2012-11-30 18:49洋洋
所有上面的东西都好了,但是运行程序的时候出现了下面的异常,求解
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
你就是我的再生父母啊,纠结了3天的问题,今天看了你的博客,终于解决了,不易啊………………
回复2012-10-31 21:01himeat com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError
at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF
at com.microsoft.sqlserver.jdbc.TDSParser.parse
at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect
at java.sql.DriverManager.getConnection(Unknown Source)
回复2012-10-31 21:15hime 回复hime不好意思,搞定了,谢谢~~回复2012-11-13 13:54279299751 回复hime请问应该怎么解决??回复2012-11-13 17:53279299751 回复279299751没事了 解决掉了回复2012-11-11 18:47gongxing1219at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at pkg.Main.main(Main.java:13)
这几个错误怎么解决哦,朋友~谢谢了哈,感谢,研究好几天连接数据库了,网上各种版本我都用不了~楼下说的"DatabaseName=Test",这个问题我也想清楚,感觉应该是Test,但改了之后错误还是显示以上~望能解决,感谢
回复2012-11-11 17:45lelesuocom.microsoft.sqlserver.jdbc.SQLServerException: 无法打开登录所请求的数据库 "教务管理系统"。前面建了数据库是Test 这里DatabaseName应该是Test吧回复2012-11-11 17:51lelesuo 回复lelesuo没有追加环境变量,仍然连接成功,sqljdbc4jar类 没有放在放到jre/lib/ext和tomcat/lib下
请教是不是可以不用追加?回复2012-10-31 23:18子谦
提示:也可以把sqljdbc4jar类 放到jre/lib/ext下,并放到tomcat/lib下这样就可以应用到所有jsp文件,减少对每个项目进行sqljdbc4jar的加载;
是再次考到这两个目录下吗?之前的配置有影响吗??
回复2012-11-01 08:15Jackie 回复子谦这两个选一个就行
回复2012-10-29 15:29poisson0106我想问问,我sa和之前TCP/IP的设置都可以通过,为什么最后就只是显示连接失败??回复2012-10-29 16:34Jackie 回复poisson0106我把测试程序稍微改了下加了句 e.printStackTrace();你试试看看输出的错误是什么?回复2012-10-28 11:54lywhen520谢谢,成功连接回复2012-10-10 13:02tanliyuan
我配置的时候前面全部通过了,但是就是把代码弄上去之后出现很多问题,不知道问题出在哪里
回复2012-10-12 17:06Jackie 回复tanliyuan可以把报的错误贴出来吗?回复2012-10-16 18:48tanliyuan516867305 回复Jackie
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at test1.main(test1.java:9)
上面的(Native Method)是可以点击的链接。点击第一个“Native Method”时,出现“找不到源,源代码连接不包含文件ClassLoader.class的源代码。可以通过单击下面的“更改连接的源代码”来更改源代码连接”;其他几个“Native Method”点击后也是类似。at test1.main(test1.java:9这句指向 Class.forName(driverName); 代码如下:
import java.sql.*;
public class test1{
public static void main(String[] args) {
String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=学生管理系统";
String userName="tanliyuan"; //默认用户名
String userPwd="123456"; //密码
try{
Class.forName(driverName);
回复2012-09-24 19:14Jackie 回复幽游警告的意思是你的变量在后面并没有使用,这个只是警告,并不影响程序的运行的。回复2012-10-08 00:23米丝羽 回复Jackie运行结果是连接失败,怎么解释啊?
回复2012-10-08 18:33Jackie 回复米丝羽要检查一些东西:比如是否开启sql Server的服务,帐号、密码是否正确,是否添加了驱动包(响应的jar文件)。在catch里输出一下异常是什么(e.printStackTrace())。
回复2012-10-07 23:23abwbw
连接失败
回复2012-09-19 23:08c1205206125回复2012-09-24 19:15Jackie 回复c1205206125多谢回复2012-09-23 19:40幽游帮忙解决下吧,谢谢了。回复2012-09-23 19:39幽游描述 资源 路径 位置 类型The value of the local variable dbConn is not used Main.java/Test/src/pkg第 15 行 Java 问题回复上一页1...-1-1-1-1-1-1-1...-1下一页