Java连接SqlServer2008数据库的解决方法
1.如果是sql server 2000 需要下载3个m开头的jar包,
如果JDK版本低于6.0(window+R打开命令行窗口,查询jdk版本java -version),则需使用sqljdbc.jar;
打开Microsoft SQL Server Managerment Studio并以windows验证方式登录,左侧的对象资源管理器->安全性->登录名,右击sa->属性,为sa用户添加密码,选择sqlServer身份验证,在"状态"选项中授予连接到数据库和登录启用.右击对象资源管理器的根节点,选择属性->安全性->sqlServer和windows身份验证模式,这样就为sql server 2008创建了以sql server身份验证的用户sa.
在java代码中用两种方式连接sqlserver2008数据库,一种是sa身份验证模式,另外一种是混合身份验证模式:
第一种:sa身份验证模式,用下边java代码的url
第二种:混合身份验证模式,用上边java代码的url2.
在集成模式下需要如下操作:
找到你刚才的解压目录:进入sqljdbc_3.0\chs\auth\x64,我的是64位系统,如果是32位就x86,将一个名为sqljdbc_auth.dll的文件拷贝到:C:\Windows\System32下,就好了
最后就是sqlserver2008用的是动态端口,需要你配置一下:
打开配置工具->SQLServer配置管理器->SQLServer网络配置->MSSQLSERVER的协议->TCP/IP启用,把TCP动态端口中的0都删掉,留空;然后把列表拉到最下边(IPALL),配置一个固定端口,以后你连接数据库就用这个端口就可以了:如下图
![Java连接SqlServer2008数据库的解决方法 - xdalsh - xdalsh的博客](http://img1.ph.126.net/z4wvEsllMwC0jEfLDtaquQ==/6632514723002214265.jpg)
这里我用的是1433,数据库重启后,就可以用上面的程序连接了.
4.连接数据库:
(1)用windows验证方式连接数据库:这种方式可能要求管理员权限,至少部分情况下会导致无法正常访问数据库。因此不建议采用!
(2)用sql server身份验证方式连接数据库。
如果安装sql server 2008 时是以windows身份验证安装的,没有为sql server 2008添加sql sever身份用户,需要首先添加用户:
打开Microsoft SQL Server Management Studio并以windows验证方式登录,左侧的对象资源管理器->安全性->登录名,右击sa->属性,为sa用户添加密码,选择sql server身份验证,在 “状态”项中授予连接到数据库和登录启用;
右击对象资源管理器的根节点,选择属性->安全性->sql server和windows身份验证模式,然后就这样
创建了以sql server身份验证的用户sa。
我0创建的sa用户密码是"123";
5.将sqljdbc4.jar导入到eclipse的项目中:
有两种方法导入jar包,第一种是先把jar包放在项目的目录下,通过添加jar包,是使用相对地址的,这样把项目复制到其它电脑也可以用
第二种方法是导入外部的jar包,是绝对地址,如果项目要复制到其它电脑又要重新导入
建议使用第一种方法!
1.右击要导入jar包的项目工程,点击properties
2.左边选择java build path,右边选择libraries
3.选择Add External jars
4.选择jar包的所在路径下的sqljdbc4.jar,点击打开
6.连接Sql Server 2008数据库的Java代码:
连接数据库代码:
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=spdb1;"; conn = DriverManager.getConnection(url ,"sa","123"); /* * 从数据库中取出学生信息 */ package com.test1; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*; import java.util.*; public class Test2 extends JFrame { //rowData用来存放行数据 //columnNames存放列名 Vector rowData,columnNames; JTable jt=null; JScrollPane jsp=null; //定义操作数据库需要的东西 PreparedStatement ps=null; Connection ct=null; ResultSet rs=null; public static void main(String[] args) { // TODO Auto-generated method stub Test2 test2=new Test2(); } public Test2() { columnNames=new Vector(); //设置列名 columnNames.add("学号"); columnNames.add("名字"); columnNames.add("性别"); columnNames.add("年龄"); columnNames.add("籍贯"); columnNames.add("院系"); rowData=new Vector(); try { //1.加载驱动 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); ct=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;databaseName=spdb1","sa","123"); ps=ct.prepareStatement("select* from stu"); rs=ps.executeQuery(); while(rs.next()) { //rowData可以存放多行 Vector hang =new Vector(); hang.add(rs.getString(1)); hang.add(rs.getString(2)); hang.add(rs.getString(3)); hang.add(rs.getInt(4)); hang.add(rs.getString(5)); hang.add(rs.getString(6)); rowData.add(hang); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }finally { try { if(rs!=null) rs.close(); if(ps!=null) ps.close(); if(ct!=null) ct.close(); } catch (Exception e2) { e2.printStackTrace(); // TODO: handle exception } } //初始化JTable jt=new JTable(rowData,columnNames); //初始化jsp JScrollPane jsp=new JScrollPane(jt); //把jsp放入到jframe this.add(jsp); this.setSize(400,300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } }
运行数据库结果为:
![Java连接SqlServer2008数据库的解决方法 - xdalsh - xdalsh的博客](http://img1.ph.126.net/1xNDBcu-ExjPLl9kD-HPbw==/6632255238258061549.jpg)
记住,jdk6.0以上就用sqljdbc4.jar包
![Java连接SqlServer2008数据库的解决方法 - xdalsh - xdalsh的博客](http://img0.ph.126.net/gneQFX4enkoSGCeLslkxCA==/6632530116165009546.jpg)