用Java Express连接Java

时间:2012-08-22 11:40:05

标签: java sql sql-server-2008 jdbc

我使用Java和MySQL设计了一个数据库管理系统。我使用 WAMP 作为服务器。现在一切都很完美......直到现在......

现在,我必须选择 SQL Express 而不是 WAMP 。我对SQL Express一无所知。我在默认情况下安装了它。

但是,现在我可以使用以下选项连接到 Microsoft SQL Server Management Studio 中的数据库, (LORDXAX-PC是我的电脑名称)

enter image description here

但是我需要将数据库与我的Java程序连接起来。 (之前我已成功使用 JDBC ,使用WAMP)

需要帮助才能成功吗?我试过找到某些东西,但它会给出错误。有人可以为我提供干净的说明..

感谢任何帮助。谢谢!


编辑(2)

这是一个完整的代码,展示了这个问题..

package ExpressTest;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;

public class MAIN {

    public static void main(String[] args) {
        new MAIN().start();
    }

    private void start() {
        System.out.println("START");
        String query = "SELECT * FROM logindata";
        getData(query);
        System.out.println("END");
    }

    public ResultSet getData(String query) {
        Connection CON = null;
        try {
            Class.forName("net.sourceforge.jtds.jdbc.Driver");
            CON = DriverManager.getConnection(URL, USER, PASS);
            RESULT = CON.createStatement().executeQuery(query);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return RESULT;
    }
    private String URL = "jdbc:jtds:sqlserver://localhost/brandix;instance=sqlexpress";
    private String USER = "";
    private String PASS = "";
    private static ResultSet RESULT;
}

这是完整的NetBeans输出。

run:
START
java.sql.SQLException: Network error IOException: Connection refused: connect
    at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:417)
    at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50)
    at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:185)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at ExpressTest.MAIN.getData(MAIN.java:24)
    at ExpressTest.MAIN.start(MAIN.java:16)
    at ExpressTest.MAIN.main(MAIN.java:10)
Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    at java.net.Socket.connect(Socket.java:519)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
END
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:311)
    at net.sourceforge.jtds.jdbc.SharedSocket.<init>(SharedSocket.java:261)
    at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:318)
    ... 7 more
BUILD SUCCESSFUL (total time: 7 seconds)

4 个答案:

答案 0 :(得分:6)

虽然有很多答案可供选择。我想给一个。

正在使用窗口身份验证。

更改JTDS URL
private String URL = "jdbc:jtds:sqlserver://localhost/brandix;instance=sqlexpress";

private String URL = "jdbc:jtds:sqlserver://localhost/brandix;instance=sqlexpress;useNTLMv2=tru‌​e;domain=workgroup";

或另一种选择是:

下载[Microsoft JDBC驱动程序] [1]而不是JTDS。 将sqljdbc4.jar添加到类路径中。

更新服务器的连接字符串(JDBC URL)

使用Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);

网址:jdbc:sqlserver://localhost;user=root;password=‌​123;"

如果还是有问题,坚持下去。检查,

启用TCP / IP网络协议,默认情况下禁用,并将TCP / IP端口设置为1433,这也是默认端口号。

  1. 打开SQL Server配置管理器 开始 - &gt; Microsoft SQL Server 2008 - &gt;配置工具 - &gt; SQL Server配置管理器

  2. 然后在左手树上。选择SQL Server 2005网络配置 - &gt; SQLEXPRESS的协议 - &gt; TCP / IP。

  3. 右键单击并启用它。

  4. 双击TCP / IP时会出现一个窗口框。单击“IP地址”选项卡

  5. 将TCP端口值设置为1433,然后单击“应用”

  6. 重新启动SQL服务。

答案 1 :(得分:2)

您必须使用能够与SQL Server通信的驱动程序,例如jTDS

现在,对于这种情况,您的代码必须与此类似:

public ResultSet getData(String query) {
    Connection CON = null;
    try {
        Class.forName("net.sourceforge.jtds.jdbc.Driver");
        CON = DriverManager.getConnection(URL, USER, PASS);
        RESULT = CON.createStatement().executeQuery(query);
    } catch (Exception ex) {
        System.err.println(">> " + ex.getMessage());
    }
    return RESULT;
}
private String URL = "jdbc:jtds:sqlserver://servername/brandix;instance=sqlexpress";
private String USER = "";
private String PASS = "";
private static ResultSet RESULT;

另见@ SPee的回答。

答案 2 :(得分:1)

Basically your steps are

  1. Microsoft JDBC driver SQL Express安装到类路径中
  2. 更新服务器的连接字符串(JDBC URL)
  3. 更新SQL Express
  4. 的查询

    步骤2可能要求您通过TCP / IP连接而不是本地管道/命名实例来使SQL Express可用。

    第3步可能是最困难的。您必须检查查询是否对SQL Express有效,使用具有正确参数的函数。对于数据库管理系统,您还必须更新用户管理,表管理等所有查询。

答案 3 :(得分:1)

首先从微软网站下载JDBC-Driver。

http://msdn.microsoft.com/en-us/sqlserver/aa937724.aspx

sqljdbc4.jar添加到您的应用中。

复制sqljdbc_auth.dll {和{1}}以及java安装的c:\windows\system32文件夹。

您可以使用这样的连接网址:

/bin

可能需要重新启动。