在Eclipse中用JDBC连接Sql Server 2005总结(转贴)

tony2006bj 2007-07-25 09:51:57
作者:游乐园 文章来源:本站原创 点击数:783 更新时间:2007-6-14 19:02:26
原帖及讨论:http://bbs.bc-cn.net/dispbbs.asp?boardid=12&id=140292

* 最近因为开发活动需要,用上了Eclipse,并要求使用精简版的SQL数据库(即SQL Server 2005)来进行开发项目 *

1.准备工作: 准备相关的软件(Eclipse除外,开源软件可以从官网下载)

<1>.Microsoft SQL Server 2005 Express Edition

下载地址:http://download.microsoft.com/download/0/9/0/09020fab-d2c3-4a8c-b9e0-db53a7a30ae8/SQLEXPR_CHS.EXE

<2>.SQL Server Management Studio

下载地址:http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796#filelist

<3>.SQL Server 2005 driver for JDBC

下载地址:http://download.microsoft.com/download/8/B/D/8BDABAE2-B6EA-41D4-B903-7916EF3690EF/sqljdbc_1.2.2323.101_enu.exe

2.都下载完之后开始进行安装 ,前两个是属于数据库软件,正常安装即可(注意数据库登陆不要使用windows验证)

<1> 将JDBC解压缩到任意位置,比如解压到C盘program files下面,并在安装目录里找到sqljdbc.jar文件,得到其路径开始配置环境变量

在环境变量classpath 后面追加 C:\Program Files\Microsoft SQL Server2005 JDBC Driver\sqljdbc_1.2\enu\sqljdbc.jar

<2> 设置SQLEXPRESS服务器:

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

<3> 打开刚刚安装好的 SQL Server Management Studio,连接SQLEXPRESS服务器, 新建数据库,起名字为sample

<4> 打开Eclipse

a.新建工程-> java -> Java project,起名为Test

b.选择eclipse->窗口->首选项->Java->installed JRE 编辑已经安装好的jdk,查找目录添加sqljdbc.jar

c.右键单击目录窗口中的Test, 选择Build Path ->Configure Build Path..., 添加扩展jar文件,即把sqljdbc.jar添加到其中

<5> 编写Java代码来测试连接数据库

程序代码:


import Java.sql.*;

public class Test {
public static void main(String[] srg) {
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //加载JDBC驱动
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=sample"; //连接服务器和数据库sample
String userName = "sa"; //默认用户名
String userPwd = "123456"; //密码
Connection dbConn;

try {
Class.forName(driverName);
dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
System.out.println("Connection Successful!"); //如果连接成功 控制台输出Connection Successful!
} catch (Exception e) {
e.printStackTrace();
}
}
}




注:

1.因为SQLexpress服务器默认是禁用的并且端口号没有配置,所以要进行重新设置

2.如果你以前用Java连接SQL Server 2000的话就要注意了:

在SQL Server 2000 中加载驱动和URL路径的语句是

String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=sample";

而SQL Server 2005 中加载驱动和url的语句则为

String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=sample";

如果写法错误将会找不到驱动.


好了,应该没什么疑问了吧...偶是有连接失败经历才分享给大家的...

...全文
11415 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
秋风不下烈雨 2011-05-15
  • 打赏
  • 举报
回复
b.选择eclipse-> 窗口-> 首选项-> Java-> installed JRE 编辑已经安装好的jdk,查找目录添加sqljdbc.jar

请问这里是怎么搞的呀?能再详细点吗。。谢谢啦。。。
YYQ_yyq 2010-11-15
  • 打赏
  • 举报
回复
打开我的电脑管理—服务和应用程序—SqlServer配置管理器—双击MSSQLSERVER的协议——启用TCP/IP
跑跑鱼 2010-05-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lucklihuan 的回复:]
我运行怎么不行啊,出来如下东西,还请斑竹帮帮忙,帮我看看,谢谢啦!
java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.……
[/Quote]



try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (Exception ex) {
System.out.println ("无法加载驱动程序:" + ex.getMessage());
return;


结果报错了:
无法加载驱动程序:com.microsoft.sqlserver.jdbc.SQLServerDriver


我的驱动包是sp3,sqlserver是sp4,驱动包是在项目右键buildpath ->libraries中增加的
kinglcy 2009-10-29
  • 打赏
  • 举报
回复
这帖子害人不浅呀…………最新的1.60的java要求要sqljdbc4.jar呀……要下载最新的驱动呀%
b0403003 2008-09-05
  • 打赏
  • 举报
回复
调试了,没找到驱动程序。
再仔细看看。
~海贼王~ 2008-06-04
  • 打赏
  • 举报
回复
resin服务器启动的时候报的错误:

严重: Initializing application data source java:comp/localhost
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFact
ory (到主机 的 TCP/IP 连接失败。 java.net.ConnectException: Connection refused:
connect)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSou
rce.java:855)
at org.apache.commons.dbcp.BasicDataSource.setLogWriter(BasicDataSource.
java:598)
at org.apache.struts.action.ActionServlet.initModuleDataSources(ActionSe
rvlet.java:808)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:335)
at javax.servlet.GenericServlet.init(GenericServlet.java:82)
at com.caucho.server.http.Application.createServlet(Application.java:310
9)
at com.caucho.server.http.Application.loadServlet(Application.java:3060)

at com.caucho.server.http.Application.initServlets(Application.java:1921
)
at com.caucho.server.http.Application.init(Application.java:1847)
at com.caucho.server.http.VirtualHost.init(VirtualHost.java:728)
at com.caucho.server.http.ServletServer.initHosts(ServletServer.java:874
)
at com.caucho.server.http.ServletServer.initInternal(ServletServer.java:
719)
at com.caucho.server.http.ServletServer.init(ServletServer.java:530)
at com.caucho.server.http.ResinServer.init(ResinServer.java:393)
at com.caucho.server.http.ResinServer.main(ResinServer.java:1154)
at com.caucho.server.http.HttpServer.main(HttpServer.java:103)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连
接失败。 java.net.ConnectException: Connection refused: connect
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(U
nknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Sour
ce)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(Driv
erConnectionFactory.java:37)
at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(Poolable
ConnectionFactory.java:290)
at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(Bas
icDataSource.java:877)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSou
rce.java:851)
... 15 more


struts.config的数据源配置:
<data-source key="java:comp/localhost" type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
<set-property property="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=Company"/>
<set-property property="username" value="sa"/>
<set-property property="password" value="kaka"/>
<set-property property="maxActive" value="5"/>
<set-property property="maxIdle" value="3"/>
<set-property property="maxWait" value="100"/>
<set-property property="defaultAutoCommit" value="true"/>
<set-property property="defaultReadOnly" value="false"/>
</data-source>

请各位帮忙看看是什么错误呢?? 设置SQLEXPRESS服务器: 的设置都按照楼主的样子设置了!
wq0139 2008-03-20
  • 打赏
  • 举报
回复
数据库没启动
kang_yong 2008-03-19
  • 打赏
  • 举报
回复
好呀,有时间也试一下呀
zll_zytt 2008-03-10
  • 打赏
  • 举报
回复
com.microsoft.sqlserver.jdbc.SQLServerException: 到指定实例 的连接失败。错误: java.net.SocketTimeoutException: Receive timed out。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.getInstancePort(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)

这个是什么错误啊!
hp5212000 2008-03-03
  • 打赏
  • 举报
回复
驱动包没导入~

mark, up!
lucklihuan 2008-03-03
  • 打赏
  • 举报
回复
我运行怎么不行啊,出来如下东西,还请斑竹帮帮忙,帮我看看,谢谢啦!
java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
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 cn.edu.jfcs.app.test.main(test.java:15)
西安风影 2008-02-15
  • 打赏
  • 举报
回复
mark
tony2006bj 2007-07-25
  • 打赏
  • 举报
回复
我试过了,好用的

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧