做数据库课实验,要用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;";//端口可能不同,按自己的情况更改
之后就能连接上数据库了~~~