Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JDBC连接到Azure SQL数据库_Sql_Azure_Jdbc_Connection - Fatal编程技术网

使用JDBC连接到Azure SQL数据库

使用JDBC连接到Azure SQL数据库,sql,azure,jdbc,connection,Sql,Azure,Jdbc,Connection,我正在尝试连接到Azure上的SQL数据库。 我通过Android studio中的按钮调用这个类 public class Database { //public Connection connection; public Database() { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); Strict

我正在尝试连接到Azure上的SQL数据库。 我通过Android studio中的按钮调用这个类

public class Database {

    //public Connection connection;

    public Database() {
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
        thread.run();
    }

    Thread thread = new Thread(new Runnable() {
        @Override
        public void run(){
            try {
                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                Connection connection = DriverManager.getConnection("jdbc:sqlserver://ahcserver.database.windows.net:1433;database=ahc;user=ahc;password={********};encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;");
                Statement statement = connection.createStatement();
                ResultSet resultSet = statement.executeQuery("SELECT * FROM patient");
                System.out.println("Database Connection Success");
            } catch (SQLException | ClassNotFoundException throwables) {
                throwables.printStackTrace();
                System.out.println("Database Connection Failed");
            }
        }
    });

}
这是我得到的错误:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.nfcmedical, PID: 16081
    java.lang.AssertionError: numMsgsRcvd:1 should be less than numMsgsSent:1
        at com.microsoft.sqlserver.jdbc.TDSReader.readPacket(IOBuffer.java:6601)
        at com.microsoft.sqlserver.jdbc.TDSReader.nextPacket(IOBuffer.java:6567)
        at com.microsoft.sqlserver.jdbc.TDSReader.ensurePayload(IOBuffer.java:6540)
        at com.microsoft.sqlserver.jdbc.TDSReader.readBytes(IOBuffer.java:6851)
        at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.readInternal(IOBuffer.java:859)
        at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.read(IOBuffer.java:849)
        at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.readInternal(IOBuffer.java:1019)
        at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.read(IOBuffer.java:1009)
        at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.readFromSocket(ConscryptEngineSocket.java:936)
        at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:900)
        at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.access$100(ConscryptEngineSocket.java:722)
        at com.android.org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:238)
        at com.android.org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:217)
        at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1824)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2760)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2418)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:2265)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1291)
        at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:881)
        at java.sql.DriverManager.getConnection(DriverManager.java:580)
        at java.sql.DriverManager.getConnection(DriverManager.java:236)
        at com.example.nfcmedical.Database$1.run(Database.java:23)
        at java.lang.Thread.run(Thread.java:923)
        at com.example.nfcmedical.Database.<init>(Database.java:15)
        at com.example.nfcmedical.SignUp$2.onClick(SignUp.java:67)
        at android.view.View.performClick(View.java:7448)
        at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119)
        at android.view.View.performClickInternal(View.java:7425)
        at android.view.View.access$3600(View.java:810)
        at android.view.View$PerformClick.run(View.java:28305)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
I/Process: Sending signal. PID: 16081 SIG: 9
E/AndroidRuntime:致命异常:主
流程:com.example.nfcmedical,PID:16081
java.lang.AssertionError:numsgsrcvd:1应小于numsgsent:1
位于com.microsoft.sqlserver.jdbc.TDSReader.readPacket(IOBuffer.java:6601)
位于com.microsoft.sqlserver.jdbc.TDSReader.nextPacket(IOBuffer.java:6567)
在com.microsoft.sqlserver.jdbc.TDSReader.load(IOBuffer.java:6540)上
位于com.microsoft.sqlserver.jdbc.TDSReader.readBytes(IOBuffer.java:6851)
位于com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.readInternal(IOBuffer.java:859)
位于com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.read(IOBuffer.java:849)
位于com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.readInternal(IOBuffer.java:1019)
位于com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.read(IOBuffer.java:1009)
位于com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.readFromSocket(ConscryptEngineSocket.java:936)
位于com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:900)
在com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.access$100(ConscryptEngineSocket.java:722)
在com.android.org.conscrypt.ConscryptEngineSocket.doHandshake上(ConscryptEngineSocket.java:238)
在com.android.org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:217)上
位于com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1824)
位于com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2760)
位于com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2418)
位于com.microsoft.sqlserver.jdbc.SQLServerConnection.connectioninternal(SQLServerConnection.java:2265)
位于com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1291)
位于com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:881)
位于java.sql.DriverManager.getConnection(DriverManager.java:580)
位于java.sql.DriverManager.getConnection(DriverManager.java:236)
位于com.example.nfcmedical.Database$1.run(Database.java:23)
运行(Thread.java:923)
位于com.example.nfcmedical.Database.(Database.java:15)
位于com.example.nfcmedical.SignUp$2.onClick(SignUp.java:67)
在android.view.view.performClick上(view.java:7448)
在com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119)上
在android.view.view.performClickInternal(view.java:7425)
在android.view.view.access$3600(view.java:810)
在android.view.view$PerformClick.run(view.java:28305)
位于android.os.Handler.handleCallback(Handler.java:938)
位于android.os.Handler.dispatchMessage(Handler.java:99)
位于android.os.Looper.loop(Looper.java:223)
位于android.app.ActivityThread.main(ActivityThread.java:7656)
位于java.lang.reflect.Method.invoke(本机方法)
位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
I/进程:发送信号。PID:16081信号:9
我在连接(DriverManager.getConnection)时遇到此错误 我试过谷歌搜索,但什么也没找到。我将重点放在错误的这一部分: java.lang.AssertionError:numsgsrcvd:1应小于numsgsent:1