Java连接SqlServer2008数据库的解决方法

1.如果是sql server 2000 需要下载3个m开头的jar包,

如果是sql server 2008 则需要下载JDBC(sqljdbc,sqljdbc4):官方下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=21599 
记住是exe文件,运行——>解压,得到sqljdbc.jar,sqljdbc4.jar
如果JDK版本低于6.0(window+R打开命令行窗口,查询jdk版本java -version),则需使用sqljdbc.jar;
如果JDK版本6.0以上版本使用sqljdbc4.jar,使用sqljdbc4.jar版本好处可以省略。
 
2.配置sa身份验证

打开Microsoft SQL Server Managerment Studio并以windows验证方式登录,左侧的对象资源管理器->安全性->登录名,右击sa->属性,为sa用户添加密码,选择sqlServer身份验证,在"状态"选项中授予连接到数据库和登录启用.右击对象资源管理器的根节点,选择属性->安全性->sqlServer和windows身份验证模式,这样就为sql server 2008创建了以sql server身份验证的用户sa.

在java代码中用两种方式连接sqlserver2008数据库,一种是sa身份验证模式,另外一种是混合身份验证模式:

第一种:sa身份验证模式,用下边java代码的url

    import java.sql.Connection;  
    import java.sql.DriverManager;  
    import java.sql.ResultSet;  
    import java.sql.Statement;  
      
    public class Test {  
      
        public static void main(String args[]) {  
            // Create a variable for the connection string.  
            String connectionUrl = "jdbc:sqlserver://localhost:1433;"  
                    + "databaseName=AdventureWorks;integratedSecurity=true;";  
      
            String url = "jdbc:sqlserver://127.0.0.1:1433;databaseName=mydb;user=sa;password=qiaoning";//sa身份连接  
      
            String url2 = "jdbc:sqlserver://127.0.0.1:1433;databaseName=mydb;integratedSecurity=true;";//windows集成模式连接  
      
            // Declare the JDBC objects.  
            Connection con = null;  
            Statement stmt = null;  
            ResultSet rs = null;  
      
            try {  
                // Establish the connection.  
                System.out.println("begin.");  
                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
                con = DriverManager.getConnection(url);  
                System.out.println("end.");  
      
                // Create and execute an SQL statement that returns some data.  
                String SQL = "SELECT TOP 10 * FROM aud_t_basis";  
                stmt = con.createStatement();  
                rs = stmt.executeQuery(SQL);  
      
                // Iterate through the data in the result set and display it.  
                while (rs.next()) {  
                    System.out.println(rs.getString(4) + " " + rs.getString(6));  
                }  
            }  
      
            // Handle any errors that may have occurred.  
            catch (Exception e) {  
                e.printStackTrace();  
            }  
      
            finally {  
                if (rs != null)  
                    try {  
                        rs.close();  
                    } catch (Exception e) {  
                    }  
                if (stmt != null)  
                    try {  
                        stmt.close();  
                    } catch (Exception e) {  
                    }  
                if (con != null)  
                    try {  
                        con.close();  
                    } catch (Exception e) {  
                    }  
            }  
        }  
    }  

第二种:混合身份验证模式,用上边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的博客

 
 这里我用的是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的博客

 记住,jdk6.0以上就用sqljdbc4.jar包

Java连接SqlServer2008数据库的解决方法 - xdalsh - xdalsh的博客

 

 

 

posted @ 2017-06-20 00:43  书安  阅读(1154)  评论(0编辑  收藏  举报