首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建jTDS连接字符串

创建jTDS连接字符串
EN

Stack Overflow用户
提问于 2009-12-08 03:23:47
回答 5查看 210.6K关注 0票数 60

我的sql server实例名是MYPC\SQLEXPRESS,我正在尝试创建一个jTDS连接字符串来连接到数据库'Blog‘。有没有人能帮我完成这件事?

我试着这样做:

代码语言:javascript
复制
DriverManager.getConnection("jdbc:jtds:sqlserver://127.0.0.1:1433/Blog", "user", "password");

我得到了这个:

代码语言:javascript
复制
 java.sql.SQLException: Network error IOException: Connection refused: connect
    at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:395)
    at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50)
    at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at SqlConnection.Connect(SqlConnection.java:19)
    at main.main(main.java:11)
Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(Unknown Source)
    at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:305)
    at net.sourceforge.jtds.jdbc.SharedSocket.<init>(SharedSocket.java:255)
    at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:323)
    ... 6 more
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-12-08 04:01:23

如jTDS Frequenlty Asked Questions中所述,jTDS的URL格式为:

代码语言:javascript
复制
jdbc:jtds:<server_type>://<server>[:<port>][/<database>][;<property>=<value>[;...]]

因此,要连接到由运行在MYPC上的MS SQL Server托管的名为"Blog“的数据库,您可能会得到如下结果:

代码语言:javascript
复制
jdbc:jtds:sqlserver://MYPC:1433/Blog;instance=SQLEXPRESS;user=sa;password=s3cr3t

或者,如果您更喜欢使用getConnection(url, "sa", "s3cr3t")

代码语言:javascript
复制
jdbc:jtds:sqlserver://MYPC:1433/Blog;instance=SQLEXPRESS

EDIT:关于您的Connection refused错误,请仔细检查您是否在端口1433上运行SQL Server,该服务是否正在运行,并且您没有阻止传入连接的防火墙。

票数 120
EN

Stack Overflow用户

发布于 2013-03-15 20:40:08

真的、真的、真的检查一下本地SQLEXPRESS实例中是否启用了TCP/IP协议。

请执行以下步骤以确保:

  • 在"Start Menu\Programs\MicrosoftSQLServer2012\ Configuration Tools\“中打开”Configuration"
  • Go “,然后展开"SQL Server Network Configuration”
  • Go in“SQLEXPRESS"
  • Enable TCP/IP

协议

如果你有任何问题,请查看this blog post了解详细信息,因为它包含屏幕截图和更多信息。

还要检查 "SQL Server Browser“windows服务是否已激活并正在运行

  • 转到控制面板SQL ->管理工具-> SQL Server Browser服务并启用它(手动或自动,取决于您的需要)
  • 启动它。

就这样。

安装新的本地SQLExpress后,我所要做的就是启用TCP/IP并启动SQL Server Browser服务。

下面是我用来测试SQLEXPRESS本地连接的代码。当然,您应该根据需要更改IP、DatabaseName和用户名/密码。

代码语言:javascript
复制
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

public class JtdsSqlExpressInstanceConnect {
    public static void main(String[] args) throws SQLException {
        Connection conn = null;
        ResultSet rs = null;
        String url = "jdbc:jtds:sqlserver://127.0.0.1;instance=SQLEXPRESS;DatabaseName=master";
        String driver = "net.sourceforge.jtds.jdbc.Driver";
        String userName = "user";
        String password = "password";
        try {
            Class.forName(driver);
            conn = DriverManager.getConnection(url, userName, password);
            System.out.println("Connected to the database!!! Getting table list...");
            DatabaseMetaData dbm = conn.getMetaData();
            rs = dbm.getTables(null, null, "%", new String[] { "TABLE" });
            while (rs.next()) { System.out.println(rs.getString("TABLE_NAME")); }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            conn.close();
            rs.close();
        }
    }
}

如果您使用Maven,请将以下内容添加到您的pom.xml:

代码语言:javascript
复制
<dependency>
    <groupId>net.sourceforge.jtds</groupId>
    <artifactId>jtds</artifactId>
    <version>1.2.4</version>
</dependency>
票数 43
EN

Stack Overflow用户

发布于 2009-12-08 03:29:47

jdbc:jtds:sqlserver://x.x.x.x/databasex.x.x.x替换为您的SQL Server计算机的IP或主机名。

jdbc:jtds:sqlserver://MYPC/Blog;instance=SQLEXPRESS

jdbc:jtds:sqlserver://MYPC:1433/Blog;instance=SQLEXPRESS

如果您希望在连接字符串中也设置用户名和密码,而不是单独针对连接对象设置用户名和密码:

jdbc:jtds:sqlserver://MYPC/Blog;instance=SQLEXPRESS;user=foo;password=bar

(更新了我的错误信息,并添加了对instance syntax的引用)

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1862283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档