JDBC连接SQL server 2005 全过程
时间:2010-09-09 来源:舒正义
从昨天开始本人开始用jdbc连接数据库,花了整整一天时间,中间花了很多坎坷,现在终于好了写一下经历,让后来人可以顺着我的脚步走。
首先在同事那要了个JDK,很开心的安装上去了,配了一下JDK,但是网上给的都不好,有好多都是错的,害的我配置JDK就花了半个小时时间,现在发一个比较权威的方法:参见《JDK环境变量设置》,没截图,截图发不上来。
然后安装Eclipse,在网上找了一段连接数据库的代码,复制粘贴上去,有语法错误,根据Eclipse的提示原来是说连接数据库要加try catch,于是就把try catch 加上。语法没问题了,很开心的运行了一次,开始什么都没反应,过了大概2S后有反应了,全是错误信息还很长,具体什么错误没看把第一行复制粘贴到google上,说什么要安装JDBC驱动。
真正的恶梦开始了...
在网上找JDBC驱动,找啊找,找到了3个jar文件,网上说要到导入到工程中,完了怎么导入不会啊,.net中很简单添加引用就可以了,这个没添加引用啊,就到网上找找。这里也把导入jar包的方法放上来参见《导入Jar包》
Jar包导入还后,又运行了一下还是有问题,网上看了一下说sqlserver2000 和2005的jdbc不一样,然后就到官方网站上下了个,这下不会再下错吧。http://download.microsoft.com/download/1/c/a/1cae7cc0-c010-4e0c-b1b8-7915360ee0b9/sqljdbc_1.0.809.102_chs.exe 顺便发个地址。
把正确的JDBC到人到项目中,运行了一下,还是不行,火了。看看天已经黑了,就找了java高手问问,人家说没搞过。
第二天早上来了接着搞,看了下提示说"无法连接TCP/IP" 网上说是TCP/IP没有启动,现在给出TCP/IP启动的方法。
参见《TCP/IP启动》
在启动TCP/IP时中间有个地方要配置SQL Server Configuration Manager,我的电脑不知道是怎么回事,怎么也打不开。
下面再给出SQL Server Configuration Manager打不开时的方法。参见《SQL Server Configuration Manager》、
又运行了一下代码好了,呵呵。
现在总结一下:1、配置jdk 2、安装jdk 2、配置sql server2005
发一下代码
import java.sql.*;
public class HellowWorld {
public static void main(String []args){
String str = "Hello World!";
System.out.println(str);
Connection conn = null;
Statement stmt = null;
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url="jdbc:sqlserver://localhost:1433; DatabaseName=TestDB";
String user="sa";
String password="abc123!"; // 用户名和密码在此都设为空;
conn= DriverManager.getConnection(url,user,password);
stmt=conn.createStatement();
String sql = "select * from TestTAB";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next())
{
System.out.println(rs.getString(1));
}
}catch(Exception ex){
System.out.println(ex.toString());
}
finally{
if(stmt!=null){
try{
stmt.close();
}catch(Exception ex){}
}
if(conn!=null){
try{
conn.close();
}catch(Exception ex){}
}
}
System.out.println("End");
}
}
《JDK环境变量设置》
第一、下载JDK1.6,现在最新版本是JDK1.6_11,并点击安装。
第二、JDK安装完成后,就进行环境变量的设置。
1、右击“我的电脑”->“属性”,选择“高级”,点击“环境变量”的按钮。
2、在系统变量里,点击“新建”,在变量名输入java_home ;变量值输入D:\Program Files\Java\jdk1.6.0_10 ,点击确定。
同上,新建一个系统变量,变量名为:classpath;变量值:.;%java_home%\lib;%java_home%\lib\ tools.jar ,点击确定。
在系统变量中,点击Path变量,点解编辑,在变量值中添加:%java_home%\bin;%java_home%\jre6\bin; ,点击确定。
3、测试:
新建一个txt文本,复制以下代码:
public class test
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
保存后续命为.java的文件,且文件名为test.java。
打开命令提示符,输入F: 回车,输入javac test.java 回车,输入java test 输出结果为:Hello World!
《导入Jar包》
1、鼠标右击工程
2、选择属性
3、点击Java Build Path
4、点击Libraries
5、点击Add External Jars..
6、然后选中要选择的jar包
《TCP/IP启动》
若安装时选择使用Windows帐户登录SQL Server,那么首先要打开sa账户。
使用Manager Studio连接SQL Server,在数据库服务器图标(左侧树状图最顶端)点右键,选择属性,选择弹出对话框中左侧的安全性,使用SQL Server和Windows身份验证模式 。 关闭该对话框。
展开左侧树状图中 安全性,展开 登录名,配置sa帐户的属性,为sa重设密码。并将sa的 状态(弹出对话框左侧最下面)中的 登录 设为启用。
点击确定保存设置。
配置SQL Server Configuration Manager(配置管理器)。
选择 SQL Server 2005 网络配置 中的 SQLEXPRESS的协议 ,启用 TCP/IP 协议。
在 SQL Server 2005 服务 中 重启所有服务。
选择 SQL Server 2005 网络配置 中的 SQLEXPRESS的协议 ,双击 TCP/IP ,在IP地址 页中设置TCP动态端口为1433(此为SQL Server默认端口,当然可以使用其它的,但在后面连接时须说明)
在 SQL Server 2005 服务 中 重启所有服务。
《SQL Server Configuration Manager》
解决方法一
1 右击“我的电脑”-->“管理”
2 在“本地用户和组”内的Administrators组上双击,出现添加属性对话框。
3 单击“添加”按钮,出现添加用户对话框
4 单击“高级”按钮,再单击“搜索”(或是“立即查找”)按钮。注:此'NT AUTHORITY\NETWORK SERVICE'用户为系统内置帐户,无法直接添加。
5 在“搜索结果”内选择“Network Service”用户后,单击“确定”
解决方法二:检查一下 windows下的system32 中是否有framedyn.dll这个系统文件,如果没有到system32 下的wbem文件中拷贝framedyn.dll到system32 目录下。 我进到system32目录找framedyn.dll文件,果然没有找到,再进入system32\wbem目录,找framedyn.dll,拷贝到system32目下。再次进入配置管理器就一切正常了。