2016-02-21 3 views
0

Я пытаюсь вычислить jdbc out для android, похоже, не получает никакой информации. Я не уверен, что есть проблема с драйвером или с подключением. Строки могут кому-то рассказать мне, что я пытался целыми неделями.Невозможно выполнить запрос с помощью jdbc

мой LogCat дает мне следующее, когда я пытаюсь запустить соединение:

02-21 10:55:08.940 9513-9561/? E/dalvikvm﹕ Could not find class 'javax.naming.StringRefAddr', referenced from method com.mysql.jdbc.ConnectionPropertiesImpl$ConnectionProperty.storeTo 

02-21 11:23:28.940 19790-19877/net.azurewebsites.cosy W/dalvikvm﹕ VFY: unable to find class referenced in signature (Ljavax/naming/Reference;) 
02-21 11:23:28.940 19790-19877/net.azurewebsites.cosy I/dalvikvm﹕ Could not find method javax.naming.Reference.get, referenced from method com.mysql.jdbc.ConnectionPropertiesImpl$ConnectionProperty.initializeFrom 
02-21 11:23:28.940 19790-19877/net.azurewebsites.cosy W/dalvikvm﹕ VFY: unable to resolve virtual method 14328: Ljavax/naming/Reference;.get (Ljava/lang/String;)Ljavax/naming/RefAddr; 
02-21 11:23:28.940 19790-19877/net.azurewebsites.cosy D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0004 
02-21 11:23:28.944 19790-19877/net.azurewebsites.cosy W/dalvikvm﹕ VFY: unable to find class referenced in signature (Ljavax/naming/Reference;) 
02-21 11:23:28.948 19790-19877/net.azurewebsites.cosy E/dalvikvm﹕ Could not find class 'javax.naming.StringRefAddr', referenced from method com.mysql.jdbc.ConnectionPropertiesImpl$ConnectionProperty.storeTo 
02-21 11:23:28.948 19790-19877/net.azurewebsites.cosy W/dalvikvm﹕ VFY: unable to resolve new-instance 1453 (Ljavax/naming/StringRefAddr;) in Lcom/mysql/jdbc/ConnectionPropertiesImpl$ConnectionProperty; 
02-21 11:23:28.948 19790-19877/net.azurewebsites.cosy D/dalvikvm﹕ VFY: replacing opcode 0x22 at 0x0006 
02-21 11:23:28.952 19790-19877/net.azurewebsites.cosy D/dalvikvm﹕ DexOpt: unable to opt direct call 0x37fa at 0x14 in Lcom/mysql/jdbc/ConnectionPropertiesImpl$ConnectionProperty;.storeTo 

Вот мои строки подключения

public static final String connectionString = "jdbc:sqlserver://cosy.database.windows.net"; 
public static final String db_user = "eocribin"; 
public static final String db_pass = "Ecribin1"; 
public static final String DRIVER = "com.mysql.jdbc.Driver"; 

и вот мой вспомогательный класс:

public class BookHelper 
{ 
    private Connection conn; 
    private String TAG = BookHelper.class.getSimpleName(); 


    public BookHelper() 
    { 
     conn = null; 

     try 
     { 
      Log.d(TAG,"attempt to connect"); 

      Class.forName(jdbc.DRIVER); 
      conn = DriverManager.getConnection(jdbc.connectionString, jdbc.db_user, jdbc.db_pass); 

     } 
     catch (SQLException e) 
     { 
      Log.d(TAG,"server broke"); 

      Log.e(TAG, e.getMessage()); 
     } 
     catch (ClassNotFoundException e) 
     { 
      Log.d(TAG,"connections fault"); 

      Log.e(TAG, e.getMessage()); 
     } 
    } 





    public ResultSet getAllDetails() 
    { 

     Log.d(TAG,"we are connected"); 
     Log.d(TAG,"starting query"); 

     String query = "select Bookname, SubjectName from books join Subjects on Subjects.SubjectID = Books.subjectID where classID = '1a'"; 
     ResultSet temp = null; 
     try 
     { 

      Statement st = conn.createStatement(); 
      ResultSet rs = st.executeQuery(query); 

      temp = rs; 

     } 
     catch(SQLException c) 
     { 
      Log.e(TAG, c.getMessage()); 

     } 

     return temp; 



    } 



} 

, когда я изменяю соединение каким-либо образом, я получил исключение нулевого указателя, которое является странным.

+0

Обратите внимание, что JDBC обычно не используется на Android, так как он не предназначен для использования через Wi-Fi или подключения мобильных данных. – CommonsWare

+0

@CommonsWare вы бы рекомендовали вместо этого использовать php? –

+0

Я бы порекомендовал веб-службу. Внедряете ли вы его в PHP или что-то еще зависит от вас. – CommonsWare

ответ

0

Строка соединения должна быть:

jdbc:mysql://<Host>:<Port>/<Database> 
+0

, что только для mysql он, вероятно, использует sqlserver – achabahe

+0

oh, nvm then ... – Cedric

+0

@cedrickring это сервер SQL, к сожалению –

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