Java连接sql server 2008 的四种方法
Java连接sql server 2008数据库的方法可以分为两类,一类是通过jdbc-odbc桥,另一类是通过jdbc驱动。针对sql server 2008的window身份验证和sql server身份验证方式,每一类又有两种方法。
一、 jdbc-odbc桥:通过连接windows的odbc数据源来连接数据库,因此首先要配置odbc数据源:控制面板->管理工具->数据源(ODBC),如图:
如果已经有sql server 2008 的用户数据源,则直接配置该数据源的默认数据库即可。若没有则添加:
点击完成:
数据源名称(程序中要用到)和sql server 2008的服务器,下一步,
下一步,
选择默认的数据库,即要连接的的数据库,下一步,
完成。
1. 用windows验证方式连接数据库:
加载数据库驱动程序Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
连接数据库:
Stringurl="jdbc:odbc:sqlserver;";
conn = DriverManager.getConnection(url);
完整代码如下:
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
public classTest{
public static void main(String[] args)
{
Connection conn;
Statement stmt;
ResultSet rs;
try{
//加载数据库驱动程序,对于jdbc4版本可以不用写这段代码
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }
catch(ClassNotFoundException ex){
System.out.println("数据库驱动加载失败");
}
String url="jdbc:odbc:sqlserver;";
String sql="select* from exa";
try{
//连接数据库
conn = DriverManager.getConnection(url);
//建立Statement对象
stmt=conn.createStatement();
//执行数据库查询语句
rs=stmt.executeQuery(sql);
while(rs.next())
{
int id=rs.getInt("id");
Stringname=rs.getString("name");
int age=rs.getInt("age");
System.out.println("id:"+id+"\tname:"+name+"\tage:"+age);
}
if(rs!=null){rs.close();rs=null;}
if(stmt!=null){stmt.close();stmt=null;}
if(conn!=null){conn.close();conn=null;}
}
catch(SQLException e)
{
e.printStackTrace();
System.out.println("数据库连接失败");
}
}
}
2. 用sqlserver身份验证方式连接数据库:
由于安装sql server 2008 时是以windows身份验证安装的,并没有为sqlserver 2008添加sql sever身份用户,因此首先添加用户:打开Microsoft SQL ServerManagement Studio并以windows验证方式登录,左侧的对象资源管理器->安全性->登录名,右击sa->属性,为sa用户添加密码,选择sqlserver身份验证,在“状态”项中授予连接到数据库和登录启用。右击对象资源管理器的根节点,选择属性->安全性->sqlserver和windows身份验证模式,这样就为sql server 2008创建了以sqlserver身份验证的用户sa。
加载数据库驱动程序 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
连接数据库:
String url="jdbc:odbc:sqlserver;";
conn =DriverManager.getConnection(url,"sa","123456");
用户名 密码
完整代码如下:
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
public classTest{
public static void main(String[] args)
{
Connection conn;
Statement stmt;
ResultSet rs;
try{
//加载数据库驱动程序,对于jdbc4版本可以不用写这段代码
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }
catch(ClassNotFoundException ex){
System.out.println("数据库驱动加载失败");
}
String url="jdbc:odbc:sqlserver;";
String sql="select* from exa";
try{
//连接数据库
conn = DriverManager.getConnection(url, "sa","123456");
//建立Statement对象
stmt=conn.createStatement();
//执行数据库查询语句
rs=stmt.executeQuery(sql);
while(rs.next())
{
int id=rs.getInt("id");
Stringname=rs.getString("name");
int age=rs.getInt("age");
System.out.println("id:"+id+"\tname:"+name+"\tage:"+age);
}
if(rs!=null){rs.close();rs=null;}
if(stmt!=null){stmt.close();stmt=null;}
if(conn!=null){conn.close();conn=null;}
}
catch(SQLException e)
{
e.printStackTrace();
System.out.println("数据库连接失败");
}
}
}
二、 jdbc驱动方式:
1>.到微软官网上下载jdbc驱动包sqljdbc_3.0,解压后复制文件sqljdbc_3.0\enu\auth\x86\ sqljdbc_auth.dll到C:\Windows\System32,并将解压文件中的sqljdbc4.jar的路径添加系统环境变量的CLASSPATH里。
2>.设置并打开sql server的TCP/IP端口:打开SQL Server配置管理器->SQL Server 网络配置,MSSQL SERVER 的协议,TCP/IP设为启用,并右击选择属性,将IP地址端口设为1433. SQL Server配置管理器->
SQL Native Client 10.0配置->客户端协议->右击TCP/IP协议->默认端口1433.
3>.Eclipse 创建项目并为项目添加sqljdbc4.jar驱动包。
1. 用windows验证方式连接数据库:
加载数据库驱动程序Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
连接数据库
String url ="jdbc:sqlserver://localhost:1433;DatabaseName=test1;integratedSecurity=TRUE;";
conn = DriverManager.getConnection(url);
完整代码:
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
public class Test{
public static void main(String[] args)
{
Connection conn;
Statement stmt;
ResultSet rs;
try{
//加载数据库驱动程序,对于jdbc4版本可以不用写这段代码 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}
catch(ClassNotFoundException ex){
System.out.println("数据库驱动加载失败");
}
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=test1;integratedSecurity=TRUE;";
String sql="select* from exa";
try{
//连接数据库
conn = DriverManager.getConnection(url);
//建立Statement对象
stmt=conn.createStatement();
//执行数据库查询语句
rs=stmt.executeQuery(sql);
while(rs.next())
{
int id=rs.getInt("id");
Stringname=rs.getString("name");
int age=rs.getInt("age");
System.out.println("id:"+id+"\tname:"+name+"\tage:"+age);
}
if(rs!=null){rs.close();rs=null;}
if(stmt!=null){stmt.close();stmt=null;}
if(conn!=null){conn.close();conn=null;}
}
catch(SQLException e)
{
e.printStackTrace();
System.out.println("数据库连接失败");
}
}
}
2. 用sqlserver身份验证方式连接数据库:
加载数据库驱动程序Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
连接数据库
String url ="jdbc:sqlserver://localhost:1433;DatabaseName=test1;";
conn = DriverManager.getConnection(url ,"sa","123456");
完整代码:
importjava.sql.SQLException;
importjava.sql.Statement;
import java.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
public class Test{
public static void main(String[] args)
{
Connection conn;
Statement stmt;
ResultSet rs;
try{
//加载数据库驱动程序,对于jdbc4版本可以不用写这段代码 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}
catch(ClassNotFoundException ex){
System.out.println("数据库驱动加载失败");
}
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=test1;";
String sql="select* from exa";
try{
//连接数据库
conn = DriverManager.getConnection(url, "sa","123456");
//建立Statement对象
stmt=conn.createStatement();
//执行数据库查询语句
rs=stmt.executeQuery(sql);
while(rs.next())
{
int id=rs.getInt("id");
Stringname=rs.getString("name");
int age=rs.getInt("age");
System.out.println("id:"+id+"\tname:"+name+"\tage:"+age);
}
if(rs!=null){rs.close();rs=null;}
if(stmt!=null){stmt.close();stmt=null;}
if(conn!=null){conn.close();conn=null;}
}
catch(SQLException e)
{
e.printStackTrace();
System.out.println("数据库连接失败");
}
}
}