现在的位置: 首页 > 综合 > 正文

JAVA 连接 SQLServer2008

2017年11月16日 ⁄ 综合 ⁄ 共 2340字 ⁄ 字号 评论关闭

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

【上篇】
【下篇】

抱歉!评论已关闭.