简体   繁体   English

无法使用Java 8连接到SQL Server

[英]Unable to connect to sql server using java 8

I'm trying to connect to my sql server 21014 using java 8. But i'm getting error. 我正在尝试使用Java 8连接到我的SQL Server21014。但是我遇到了错误。

import java.sql.*;
import java.io.*;
import java.net.*;
import java.util.Scanner;

public class DBConnec
{
    public static void main(String a[])
    {

        try
        {
            String url = "jdbc:jtds:sqlserver//localhost:1433/dictionary";   
            Class.forName("net.sourceforge.jtds.jdbc.Driver");
            Connection conn = DriverManager.getConnection(url);
            System.out.println("connection created");
            Statement st=conn.createStatement();    
            String sql="select * from data where word LIKE 'hi'";
            ResultSet rs=st.executeQuery(sql);

            if (rs.next()) 
            {
                System.out.println(rs.getString(0));
            }

            if(st!=null)
                st.close();
            if(conn!=null)
                conn.close();
        }
        catch(SQLException sqle)
        {
            sqle.printStackTrace();
        }

        catch(ClassNotFoundException e)
        {
            e.printStackTrace();
        }

    }
}

Exception i'm getting is: 我得到的例外是:

java.sql.SQLException: The syntax of the connection URL 'jdbc:jtds:sqlserver//localhost:1433/dictionary' is invalid. java.sql.SQLException:连接URL'jdbc:jtds:sqlserver // localhost:1433 / dictionary'的语法无效。 at net.sourceforge.jtds.jdbc.Driver.setupConnectProperties(Driver.java:241) at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:181) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at DBConnec.main(DBConnec.java:15) 在net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:181)在net.sourceforge.jtds.jdbc.Driver.setupConnectProperties(Driver.java:241)在java.sql.DriverManager.getConnection(未知源)在DBConnec.main(DBConnec.java:15)处java.sql.DriverManager.getConnection(未知源)处

I'm running my code using this command: 我正在使用以下命令运行代码:

java -cp .;"C:\\Program Files\\Java\\jdk1.8.0_66\\jre\\lib\\ext\\jtds-1.3.0.jar" DBConnec java -cp。;“ C:\\ Program Files \\ Java \\ jdk1.8.0_66 \\ jre \\ lib \\ ext \\ jtds-1.3.0.jar” DBConnec

I've also tried url without writing "sqlserver". 我也尝试了url而未编写“ sqlserver”。 But it gives same exception. 但是它也有同样的例外。 Please help.. Thank you.. 请帮助..谢谢

I've corrected my syntax but now i'm getting exception like this: 我已经纠正了语法,但现在却遇到了这样的异常:

java.sql.SQLException: Network error IOException: Connection refused: connect at net.sourceforge.jtds.jdbc.JtdsConnection.(JtdsConnection.java:434) at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:183) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at DBConnec.main(DBConnec.java:15) Caused by: java.net.ConnectException: Connection refused: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) at java.net.AbstractPlainSocketImpl.connect(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(Un java.sql.SQLException:网络错误IOException:连接被拒绝:在net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:183)处的net.sourceforge.jtds.jdbc.JtdsConnection。(JtdsConnection.java:434)连接),位于DBConnec.main(DBConnec.java:15)的java.sql.DriverManager.getConnection(未知源)的java.sql.DriverManager.getConnection(未知源)的原因:java.net.ConnectException:拒绝连接:连接于java.net.AbstractPlainSocketImpl.doConnect的java.net.DualStackPlainSocketImpl.socketConnect(未知源),java.net.AbstractPlainSocketImpl.doConnect(未知源),java.net.DualStackPlainSocketImpl.socketConnect(未知源)。在java.net上的net.AbstractPlainSocketImpl.connect(未知源)在sun.reflect上的java.net.SocksSocketImpl.connect(未知源)在java.net.SocksSocketImpl.connect(未知源) sun.reflect.NativeMethodAccessorImpl.invoke(Un)上的NativeMethodAccessorImpl.invoke0(本机方法) known Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) java.lang.reflect.Method.invoke处sun.reflect.DelegatingMethodAccessorImpl.invoke的已知源(未知源)

Try this: 尝试这个:

String url = "jdbc:jtds:sqlserver://localhost:1433/dictionary";

You missed the colon after sqlserver . 您在sqlserver之后错过了冒号。

You should not be adding JDBC driver JARs to the jre/lib/ext directory. 您不应将JDBC驱动程序JAR添加到jre / lib / ext目录中。 Learn how to use CLASSPATH properly. 了解如何正确使用CLASSPATH。

The url format for JTDS is : JTDS的url格式为:

jdbc:jtds:<server_type>://<server>[:<port>][/<database>][;<property>=<value>[;...]]

So your url should be like: 因此,您的网址应类似于:

String url = "jdbc:jtds:sqlserver://localhost:1433/dictionary"; 
                                ^^^____missing colon

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM