`
webcode
  • 浏览: 5911454 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

java 通过jdbc连接sql server数据库的常见问题

阅读更多

使用微软提供的SQL Server 2000JDBC驱动程序时,当向数据库插入长的字符串时,会报一下错误:Caused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]The DBMS returned an unspecified error.
可以通过更换SQL SERVER 2005 JDBC DRIVER驱动程序解决上述问题。

SQL SERVER 2005 JDBC DRIVER驱动程序:http://download.microsoft.com/download/b/4/7/b4761c5f-2d80-40dc-aa86-0795c70893e8/Download_SQL_JDBC_Driver_12.htm

配置方法:

<parameter>
<name>driverClassName</name>
<value>
com.microsoft.sqlserver.jdbc.SQLServerDriver</value>
</parameter>

<parameter>
<name>url</name>
<value>
jdbc:sqlserver://localhost;database=dbname;integratedSecurity=false;</value>
</parameter>


注意这里驱动程序类名和URL的变化。

java 通过jdbc连接sql server数据库的常见问题

微软sqlserver2000驱动下载地址 下载后放到web-inf/lib目录
下载的地址是:http://download.microsoft.com/download/3/0/f/30ff65d3-a84b-4b8a-a570-27366b2271d8/setup.exe

:在通过jdbc连接SQL Server经常回出现[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket
原因如下:
1
,通过url连接的时候指定的服务器名称或者服务器地址不正确,这一点你可以通过ping来验证。
2
,指定的服务器上的sql server的服务没有启动,你可以通过sql server的查询工具来验证这个问题。
3
,指定端口错误,sql server的默认端口是1433
4
sql server没有提供tcp/ip的服务,你可以通过sql server的管理工具来查看这个问题。

5,如果你的系统是 windows XP 或者 Windows 2003,那么你的sql server一定要升级到sp3以上.

解决了如上问题一般就不会出现连接问题了。

jdbc配置语句为: jdbc:microsoft:sqlserver://server_name:1433

:如运行程序时出现 "Error establishing socket" 错误,则应进行如下调试:

1 检查SQL SERVER 是否允许远程访问.具体步骤:

1)打开"企业管理器",打开控制台根目录>SQL Server >数据库
2)
在相应"数据库"上单击右键,选择"属性"
3)
选择"连接"选项卡,检查"远程服务器连接",RPC服务是否选择.

2 使用telnet IP地址 1433,系统是否提示连接出错,如系统提示出错
检查是否防火墙屏蔽了SQL SERVER java IDE 的网络访问端口
如果是,关闭防火墙,重新启动SQL SERVERjava IDE,进行测试,
如果系统仍提示上述错误,尝试下列步骤

3 检查SQL SERVER 端口号及是否启用了TCP/IP协议,具体步骤:

1)打开"企业管理器",打开控制台根目录>SQL Server >数据库
2)
在相应"数据库"上单击右键,选择"属性"
3)
选择"常规"选项卡,点击"网络配置",如启用的协议中无"TCP/IP协议"将其加入
4)
选择"TCP/IP协议",点击"属性",检查其端口号是否为1433
5)
如端口号为1433将其修改为其它端口号,修改jdbc连接语句,将端口号同样改为新启用的端口号,jdbc:microsoft:sqlserver://server_name:1400(假设新端口号为 1400)

以上都注意了 不知为什么一会连上了 ,重起机子就又连不上了
那就是驱动的问题了
你可以去www.jtds.com去下载jtds驱动,如果是tacmat同样把它放在web-inf/lib目录下
如果是sun appserver就需要放在\Sun\AppServer\jdk\jre\lib\ext下面即可

:系统是 window2003 + sqlserver2000 + sun Appserver
连接数据库用的是ms提供的jdbc驱动。不过,出现了一个很郁闷的问题,当向数据库插入有点长的字符串时,就报错了。
返回错误是:Caused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]The DBMS returned an unspecified error.
这时你可以换上jtds一试。呵呵,问题马上就解决了。
jtds
确实是比较好的第三方mssqlserverjdbc驱动。
如果jtds连接不了sqlserver ,请把你的sqlserver版本升级到sp3或更高的版本.
JTDS
下载地址:http://sourceforge.net/project/showfiles.php?group_id=33291
driver = net.sourceforge.jtds.jdbc.Driver
url = jdbc:jtds:sqlserver://localhost:1433/databasename;user=sa;password=userpassword

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics