做数据库课实验,要用java连接SQLServer2008数据库,网上找了好多资料找,也尝试了不少,最后总算是连上了,mark一下。
1:
控制面板--管理工具--数据源
点击添加选择SQL Server
设置名称,选定服务器
设置一下
选择你要连接的数据库
之后下一步完成即可。
2:
(1) jdbc-odbc 桥
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Test {
public static void main(String[] args){
Connection conn;
Statement stmt;
ResultSet rs;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException ex){
ex.printStackTrace();
}
String url="jdbc:odbc:text;";
String sql="select * from exa";
try{
conn=DriverManager.getConnection(url);
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
for(;rs.next();){
int id=rs.getInt("id");
String name=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();
}
}
}
应为这个不支持64位,所以没法验证。。。
(2) jdbc 驱动
从微软官网下载sqljdbc_4,之后解压设置环境变量,把sqljdbc4.jar导入java项目中,把解压目录下sqljdbc_4.0\enu\auth\x64(我是64位,所以用x64的,同目录下有x86)的sqljdbc_auth.dll复制到C:\Windows\System32中。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Test {
public static void main(String[] args){
Connection conn;
Statement stmt;
ResultSet rs;
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}catch(ClassNotFoundException ex){
ex.printStackTrace();
}
String url="jdbc:sqlserver://localhost:1433;DatabaseName=example;integratedSecurity=TRUE;";//注意,这里可能会报错
String sql="select * from exa";//从exa表中读取数据
try{
conn=DriverManager.getConnection(url);
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
for(;rs.next();){
int id=rs.getInt("id");//id列
String name=rs.getString("name");//name列
int age=rs.getInt("age");//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();
}
}
}
上面的代码可能能运行成功,但是很有可能在注意的那行报错,原因是端口不匹配。
打开Sql Server Configuration Manager。
首先查看各种TCP/IP是否开启了,禁用的都开启,然后重启数据库
然后查看你要连接的数据库的TCP动态端口是多少
将上面注意的那句改为:
String url="jdbc:sqlserver://localhost:51542;DatabaseName=example;integratedSecurity=TRUE;";//端口可能不同,按自己的情况更改
之后就能连接上数据库了~~~