Eclipse中连接Sql Sever2008
-----转自Yogurshine
一 SQl Sever服务器配置
1我之前已经安装好SQL Sever 2008R2.(注意:安装一遍未成功时,一定要卸载干净,否则装不全,折腾好久)
2.连接服务器时一般都多个选择:(这个服务器名称,就是安装时设置的数据库实例,默认的实例有用户名MIT-PC和MTI-PC\SqLEXPRESS,有的安装好后只有用户名这个实例,不影响选择用户名实例就可以了。)
3。 一般JSP操作时多选择SQLexpress服务器,但是它默认是禁用的并且端口号没有配置,所以JDBC连接SQL Server时要进行重新设置,配置如下:
打开SQl Sever 配置管理器,SQLEXPRESS的协议中开启TCP/IP设置IPAll的TCP动态端口为1433.(有的是下面的TCP端口默认是1433,注意系统不能有端口冲突,没试过不知道设为其他行不,我一次就成功了)重启生效。还要注意:右边列的前三个协议都是开启的,VIA是禁用的。
4.用windows身份验证先进入。(这个是无论如何默认都能进去的,如果进不去就是没安装好。重装。进去后设置添加用户,设置用户权限,设置好才能按下面的SQL Sever身份验证登录,也就是说为任何数据库添加的用户设置权限时都是在windows身份验证进入下进行的,如果是SQL Sever身份验证登录设置修改权限时一般会报下图的错。
)
继续正文:
进入后,新建数据库sample,添加用户test,设置
设置好后,重启用SQL Sever身份验证,试试上面设置的用户,登陆成功。至此SQLexpress服务器配置完毕。
5.另一种我自己安装时新建的数据库实例SQLLEI也可以使用,基本设置同上面。此处端口是默认的50573
用我设置的用户jsptest登录成功
新建了数据库和表,方便下面在JAVA中测试。
如图新建了数据库JspDB,新建了表aaaa,添加的用户jsptest
几点注意:1.用户和数据库要映射起来,表示此用户可以访问操作该数据库。
2.数据库名,表名不能使用保留的名字,如之前我表名取为User,结果一直报错。
二 JDBC连接SQL Server的驱动安装
1.下载:http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11774
下载“sqljdbc_4.0.2206.100_enu.exe”得到sqljdbc_4.0.2206.100_enu.exe,解压到任意目录下。并在目录里找到sqljdbc4.jar文件,得到其路径开始配置环境变量
在环境变量classpath 后面追加C:\lei\Android\sqljdbc_4.0\enu\sqljdbc4.jar(注意目录里有两个jar包,一般Sql Sever 2000后都是用sqljdbc4.jar。
三 在JAVA中导入包,测试。
1 window->Preference-->Java->installed JRE-->Edit-->Add External Jars,查找目录添加sqljdbc4.jar
2 新建JAVA Project,
package lei.com.cn; import java.sql.*;//在使用JDBC之前,要在文件前导入有关SQL的类。 public class test { public static void main(String[] args) {
// TODO Auto-generated method stub
//取得数据库的连接
String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";//加载JDBC驱动"
String dbURL="jdbc:sqlserver://localhost:50573; DatabaseName=JspDB"; //JDBC协议
String userName = "jsptest"; //用户名 (确保该用户和数据库有映射关系,即有权限访问)
String userPwd = "*********"; //密码
Connection dbConn=null;
try {
Class.forName(driverName);
dbConn = DriverManager.getConnection(dbURL, userName, userPwd); //连接服务器和数据库JspDB
System.out.println("Connection Successful!"); //如果连接成功 控制台输出Connection Successful!
}
catch (Exception e) {
e.printStackTrace();
}
//建立Statement对象
Statement st=null;//Statement 提供执行基本SQL语句操作的功能
try {
st = dbConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} //执行SQL语句
String sql="select * from aaaa";
ResultSet rs=null;//保存返回的结果集
try {
rs = st.executeQuery(sql);//用Statement实例的executeQuery()方法执行SQL语句
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//获得查询结果
try {
while(rs.next()){
System.out.println("第一个字段内容为:"+rs.getString(1));
System.out.println("第二个字段内容为:"+rs.getString(2));
System.out.println("第三个字段内容为:"+rs.getString(3)); }
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("操作成功!");
//关闭创建的对象(后打开先关闭)
try {
rs.close();
st.close();
dbConn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace(); }
}
}
测试结果:
Connection Successful!
第一个字段内容为:1
第二个字段内容为:Admin
第三个字段内容为:Admin
第一个字段内容为:2
第二个字段内容为:lei
第三个字段内容为:123
第一个字段内容为:3
第二个字段内容为:hehe
第三个字段内容为:456
操作成功!
PS:如果你以前用JDBC连接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";