配置eclipse通过JDBC连接SQl Server 2008数据库


在上一篇文章“Windows7下安装Microsoft SQL Server 2008”中已经安装好Microsoft SQL Server 2008,下面就要对其进行配置,使eclipse里的Java程序能通过JDBC连接到SQL Server 2008数据库,进行一些操作。

1、在“开始”菜单中找到“SQL Server 配置管理器”打开:

SQL Server 2008

2、下面进行配置:

SQL Server 2008

3、点击上图中的“MSSQLSERVER的协议”,在右侧列表中双击“TCP/IP”协议,在弹出的窗口中找到IP是“127.0.0.1”的一项,活动:“是”,已启用:“是”。确认最下面的“IPALL”里,“TCP端口”是“1433”:

SQL Server 2008

最后,关闭上图窗口后要确认“TCP/IP”的状态为“已启用”。左侧列表中其他项目的客户端“TCP/IP”也建议启用。必要时请点击左侧第一个“SQL Server服务”,重新启动各项服务。然后关闭即可。

4、在“开始”菜单找到“SQL Server Management Studio”打开:

SQL Server 2008

5、提示连接数据库如图

SQL Server 2008

6、点击“连接”进入管理界面

SQL Server 20087、在 左侧“数据库”项上右键,选择“新建数据库…”,新建一个名为“Mydb”。

到此为止,SQL Server 2008的配置基本结束。

8、导入JDBC的驱动程序,也就是jar的包,点击下载jdbc2.0驱动。jdk或jre1.6(jre1.5以上就行)。下载后用WinRAR打开,将里面的”sqljdbc4.jar”文件,放到java安装目录的 …Java/jre7/lib/ext文件夹下即可完成导入。比如我的目录是:C:\Program Files\Java\jre7\lib\ext。

9、打开eclipse,新建Java项目,代码如下:

import java.sql.*;

public class javaConSQL {
	public static void main(String[] args) {
		String JDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";// SQL数据库引擎
		String connectDB = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=Mydb";// 数据源
		try {
			Class.forName(JDriver);// 加载数据库引擎,返回给定字符串名的类
		} catch (ClassNotFoundException e) {
			// e.printStackTrace();
			System.out.println("加载数据库引擎失败");
			System.exit(0);
		}
		System.out.println("数据库驱动成功");

		try {
			String user = "sa";
			String password = "123456";
			Connection con = DriverManager.getConnection(connectDB, user, password);// 连接数据库对象
			System.out.println("连接数据库成功");
			Statement stmt = con.createStatement();// 创建SQL命令对象

			// 创建表
			System.out.println("开始创建表");
			String query = "create table TABLE1(ID NCHAR(2),NAME NCHAR(10))";// 创建表SQL语句
			stmt.executeUpdate(query);// 执行SQL命令对象
			System.out.println("表创建成功");

			// 输入数据
			System.out.println("开始插入数据");
			String a1 = "INSERT INTO TABLE1 VALUES('1','旭哥')";// 插入数据SQL语句
			String a2 = "INSERT INTO TABLE1 VALUES('2','伟哥')";
			String a3 = "INSERT INTO TABLE1 VALUES('3','张哥')";
			stmt.executeUpdate(a1);// 执行SQL命令对象
			stmt.executeUpdate(a2);
			stmt.executeUpdate(a3);
			System.out.println("插入数据成功");

			// 读取数据
			System.out.println("开始读取数据");
			ResultSet rs = stmt.executeQuery("SELECT * FROM TABLE1");// 返回SQL语句查询结果集(集合)
			// 循环输出每一条记录
			while (rs.next()) {
				// 输出每个字段
				System.out.println(rs.getString("ID") + "\t" + rs.getString("NAME"));
			}
			System.out.println("读取完毕");

			// 关闭连接
			stmt.close();// 关闭命令对象连接
			con.close();// 关闭数据库连接
		} catch (SQLException e) {
			e.printStackTrace();
			System.out.println("数据库连接错误");
			System.exit(0);
		}
	}
}

这时点击左侧项目中的“JRE System Library”即可看到已经有上面导入的那个驱动包了。

10、运行测试代码,即可,注意测试代码里面的数据库名和连接密码,要根据自己配置的进行修改。运行结果:

SQL Server 2008

11、进入“SQL Server Management Studio”,在数据库“Mydb”上右键,“新建查询”,输入查询语句并执行,同样能看到数据已经写入。

SQL Server 2008

12 Responses Comment (12) Trackback (0)
  1. 雯雯 :

    数据库驱动成功
    com.microsoft.sqlserver.jdbc.SQLServerException: 无法打开登录所请求的数据库 “Mydb”。登录失败。 ClientConnectionId:f977bf91-0721-4ca0-ad7a-4c782fe031c8
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
    at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:254)
    at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:84)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2908)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2234)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2220)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1326)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at javaConSQL.main(javaConSQL.java:22)
    数据库连接错误

  2. 大哥 :

    com.microsoft.sqlserver.jdbc.SQLServerException: 用户 ‘java000’ 登录失败。 ClientConnectionId:3871bd69-3d5d-48b0-94dd-2481ba68546f
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
    at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:254)
    at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:84)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2908)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2234)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2220)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1326)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at Conn.getConnection(Conn.java:14)
    at Conn.main(Conn.java:24)
    连接时出现这错误信息,弄了好久,不知道该怎么办
    求助

  3. hhhh :

    :x :x :x :x :x :x :x :x

  4. 水漾涟漪 :

    为什么我的数据库驱动成功,但是连接错误?求大神指教!数据库驱动成功
    com.microsoft.sqlserver.jdbc.SQLServerException: 用户 ‘sa’ 登录失败。
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:196)
    at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:246)
    at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:83)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2532)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:1929)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:1917)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4026)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1416)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1061)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:833)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:716)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:841)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    数据库连接错误
    at javaConSQL.main(javaConSQL.java:21)
    :cry: :cry: :cry: :cry: :cry: :cry:

    1. young :

      老兄,我也遇到这个问题,
      数据库驱动成功
      com.microsoft.sqlserver.jdbc.SQLServerException: 用户 ‘sa’ 登录失败
      你解决了吗?

      1. SingleX Post author :

        很可能没有启用sa账户,在数据库-安全性-用户里找到sa,启用并设置密码就行了

  5. Dirk勇 :

    为什么我的连接失败了
    com.microsoft.sqlserver.jdbc.SQLServerException: 用户 ‘dell’ 登录失败。
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:196)
    at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:246)
    at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:83)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2532)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:1929)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:1917)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4026)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1416)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1061)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:833)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:716)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:841)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at javaConSQL.main(javaConSQL.java:19)
    数据库连接错误

    1. SingleX Post author :

      @Dirk勇 : 你如果完全按照博文里面说的配置,用sa账户估计就没问题。自建账户会出现跟端口有关的问题导致无法登陆。CSDN里有贴说你这种解决方法是“启用SQL server(SQLEXPRESS)的端口,(并将里面的IP端口全部改为1433)。禁用SQL server(MSSQLSERVER)的端口,(原来这里的全部1433端口也是没有用的)”。希望能帮到你 ;-)

      1. Dirk勇 :

        @SingleX : 您好,但是我安装sql server时候没有SQL server(SQLEXPRESS)重装了还是这样,求解决方法

发表评论