JDBC连接SQL Server 2008 R2时遇到的常见问题集解
昨天下午开始到现在,一直在捣鼓JDBC连接SQL Server 2008 R2,不知道怎么的,即使已经下了一个教程,照着做,还是出了不少问题,不断的百度、谷歌,弄到凌晨两点多就是不见好,今早起来突然“灵感来了”,终于弄好了。 由于我出现的问题比较多,有的能在网上
昨天下午开始到现在,一直在捣鼓JDBC连接SQL Server 2008 R2,不知道怎么的,即使已经下了一个教程,照着做,还是出了不少问题,不断的百度、谷歌,弄到凌晨两点多就是不见好,今早起来突然“灵感来了”,终于弄好了。
由于我出现的问题比较多,有的能在网上找到解决办法,有的不能,于是把我在这中间遇到的问题及解决办法都给写出来:
首先必须有Eclipse或MyEclipse以及SQL server,Eclipse是压缩文件,解压就能用,MyEclipse的安装破解方法参见此文:http://blog.csdn.net/yanghai0321/article/details/7094319
数据库软件我用的是SQL Server2008,这个要到微软官网下载并安装,安装教程网上也很多,不再赘述。
最初遇到的问题是没有驱动,于是到微软官网上下载JDBC驱动,如果找不到,可以直接在这里下载:
http://download.csdn.net/detail/yanghai0321/4081848
下载完驱动后,就导入到项目里,步骤为:右键项目名称——点击“Properties”——Java Build Path——点击“Libraries”——点击“Add Externel JARs”,然后把“sqljdbc4.jar”导入就OK啦。有了这个后,“为JDBC配置环境变量 classpath : C:\Program Files\Microsoft SQL Server JDBC Driver\sqljdbc_2.0\chs\sqljdbc.jar,
后边的.jar文件要根据jdk版本而定”这一步就可要可不要(至少我没设置这一步也把程序跑起来了)。
然后便开始写java代码,一个小的测试程序连接到数据库就行(下文会给出一个我在网上下载并经过编译运行的代码)。
当我以为万事都OK的时候,总是报错连接不上,后面到网上一查,说是端口问题,到DOS窗口去查看telnet时,说telnet不是合法指令,一查,是telnet没安装且没启动。
解决办法:
点击“开始”→“控制面板”→“程序”,“在程序和功能”找到并点击“打开或关闭Windows功能”进入Windows 功能设置对话框。找到并勾选“Telnet客户端”和“Telnet服务器”。
Telnet服务安装完成后,默认情况下是禁用的,还需要通过Services.msc启动服务。
解决完这个问题,我以为可以,又蹦出一个问题,报错说无法通过1433端口连接到主机~~~·
于是到网上一查,具体设置步骤为:
a.打开SQL Server Configuration Manager -> SQLEXPRESS的协议 -> TCP/IP;
b.右键单击启动TCP/IP;
c.双击进入属性,把IP地址中的IP all中的TCP端口设置为1433
d.重新启动SQL Server 2005服务中的SQLEXPRESS服务器
e.关闭SQL Server Configuration Manager
到这个时候我以为可以,结果还是不行,还是连接不上数据库,百度谷歌了很久大都数都是教怎么设置端口的,和上面的步骤都一样,只是有的把端口号改一下而已,这个步骤我试了数种方法以及重复了10遍以上还是不行,都到凌晨一点多了,便睡了。
早上七点多起来继续弄,又是百度、谷歌,还是没找到什么有用的信息,依旧是连接不成功。
这个时候突然想到以前用过SQL Server2008时,每次打开前都会到SQL Server Configuration Manager去连接SQLEXPRESS服务器,心想莫非问题就出在这里?
赶紧试了一下,点击sscm,然后点“SQL Server services”——点“SQL Server”——点“Log On ”——点“Start”.
激动人心的时刻出现了,成功啦!真的是历尽“千辛万苦”才搞定啊!
附:两份代码,其中有一份是在“SQL Server Authentication”模式下的,即需要账号密码,另一份为在“Windows Authentication”模式下的,不需要账号密码。
下载地址:http://download.csdn.net/detail/yanghai0321/4081970
嘿嘿,各位写代码也有点累了吧,特别是深夜的时候是不是觉得应该有点吃的就更好了?可以到本人开
的小店“小灰灰休闲美食”店买点休闲食品哦,既满足食欲又可以放松哈子,当然平时也要吃是吧,也
可以买来送朋友哦!