java连接sql server2008_Java连接SqlServer2008数据库的解决方法

本文介绍了如何使用Java连接SQL Server 2008数据库,包括配置sa身份验证、设置SQL Server和Windows混合身份验证模式,并提供了两种连接方式的Java代码示例,涉及sa身份验证和Windows集成模式。
摘要由CSDN通过智能技术生成

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),配置一个固定端口,以后你连接数据库就用这个端口就可以了:如下图

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身份验证,在 “状态”项中授予连接到数据库和登录启用;

bcf748d888ac541b1dffe9dd41dd2d66.png

右击对象资源管理器的根节点,选择属性->安全性->sql server和windows身份验证模式,然后就这样

创建了以sql server身份验证的用户sa。

我0创建的sa用户密码是"123";

5.将sqljdbc4.jar导入到eclipse的项目中:

有两种方法导入jar包,第一种是先把jar包放在项目的目录下,通过添加jar包,是使用相对地址的,这样把项目复制到其它电脑也可以用

第二种方法是导入外部的jar包,是绝对地址,如果项目要复制到其它电脑又要重新导入

建议使用第一种方法!

1.右击要导入jar包的项目工程,点击properties

508f716ebc34d21ababa39ce74a7053c.png

2.左边选择java build path,右边选择libraries

3a038efca69209534655886e4f1df97f.png

3.选择Add External jars

1fccc0ba526d3ec574ce8cf84c587a5b.png

4.选择jar包的所在路径下的sqljdbc4.jar,点击打开

6.连接Sql Server 2008数据库的Java代码:

连接数据库代码:

String url = "jdbc:sqlserver://localhost:1433;DatabaseName=spdb1;";

conn= DriverManager.getConnection(url ,"sa","123");/** 从数据库中取出学生信息*/

packagecom.test1;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;public class Test2 extendsJFrame {//rowData用来存放行数据//columnNames存放列名

Vector rowData,columnNames;

JTable jt=null;

JScrollPane jsp=null;//定义操作数据库需要的东西

PreparedStatement ps=null;

Connection ct=null;

ResultSet rs=null;public static voidmain(String[] args) {//TODO Auto-generated method stub

Test2 test2=newTest2();

}publicTest2()

{

columnNames=newVector();//设置列名

columnNames.add("学号");

columnNames.add("名字");

columnNames.add("性别");

columnNames.add("年龄");

columnNames.add("籍贯");

columnNames.add("院系");

rowData=newVector();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 =newVector();

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=newJTable(rowData,columnNames);//初始化jsp JScrollPane

jsp=newJScrollPane(jt);//把jsp放入到jframe

this.add(jsp);this.setSize(400,300);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);

}

}

运行数据库结果为:

6632255238258061549.jpg

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

6632530116165009546.jpg

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值