2015-05-27 3 views
2

Вот мой код. Я пытаюсь подключиться к моему SQL-серверу. Эти содержания в предложениях действительно существуют. Реальное имя пользователя и пароль. Но я получаю Null об ошибке (не подключен). Пожалуйста, дайте мне знать, где ошибка.«Null» Connection jtds.jdbc1.3.1 подключение к SQL-серверу

И еще я добавил интернет-разрешение в манифест. я наткнулся из этой статьи - link

package com.eample.databasetester; 

    import android.os.Bundle; 
    import android.app.Activity; 
    import android.util.Log; 
    import android.widget.TextView; 
    import java.sql.Connection; 
    import java.sql.DriverManager; 
    import java.sql.ResultSet; 
    import java.sql.Statement; 

    public class MainActivity extends Activity { 
     TextView txv1; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     txv1=(TextView)findViewById(R.id.text_view); 
     query2(); 
    } 
    public void query2() 
    { 
     txv1.setText("connected"); 
    Log.i("Android"," MySQL Connect Example."); 
    Connection conn = null; 
    try { 
    String driver = "net.sourceforge.jtds.jdbc.Driver"; 
    Class.forName(driver).newInstance(); 
    String connString = "jdbc:jtds:sqlserver://50.62.209.49:3306/test;encrypt=fasle;user=XXXX;password=YYYY;instance=SQLEXPRESS;"; 
    String username = "XXXX"; 
    String password = "YYYY"; 
    conn = DriverManager.getConnection(connString,username,password); 
    Log.w("Connection","open"); 
    Statement stmt = conn.createStatement(); 
    ResultSet reset = stmt.executeQuery("select * from test"); 


    while(reset.next()){ 
     txv1.setText("Data:"+reset.getString(3)); 

    } 
    conn.close(); 

    } catch (Exception e) 
    { 
     txv1.setText("Error connection" + e.getMessage()); 
    } 
    } 

}

ответ

0

это действительно плохая идея. Вы не должны подключаться к базе данных по сети с телефона. Во-первых, это требует, чтобы ваша БД была публично адресуемой, что представляет собой угрозу безопасности. Во-вторых, это означает, что ваш пароль для db находится на клиентах, и вы физически не контролируете их. Ваше приложение будет запрограммировано с обратной связью, они получат ваш пароль, а затем ваши данные будут трахаться. Вы всегда должны абстрактно обращаться к базе данных с любого оборудования, которое вы не контролируете, используя веб-сервис. Тогда пароль никогда не покидает ваши машины, и ущерб, который может нанести злоумышленник, ограничен.

В-третьих, этот код вообще не работает, вы не можете подключить IO к потоку пользовательского интерфейса. Вероятно, почему conn возвращает null. Но возьмите это как знак вселенной, говорящей вам исправить вещи правильным путем, а не просто менять нити.

+0

Независимо от того .. спасибо .. это просто, как мой pkgname, тестирование. –

+0

Благодарим вас за руководство. Я пытаюсь изучить веб-сервис. –

Смежные вопросы