android 与 eclipse 中的致命异常

问题描述 投票:0回答:1

我对 Android 和 Eclipse 有点陌生。我正在尝试将我的 Android 应用程序与 SQL Server 数据库连接,但总是出现错误。 有人可以帮助我吗? 谢谢你。

这是我的代码:

public class DBConnection {
    
    private static DBConnection instance = null;

    private DBConnection(){}
    
    private static final String SERVER = "server";
    private static final String INSTANC = "instance";
    private static final String BBDD = "db";
    private static final String USER = "user";
    private static final String PASS = "pass";
    private static Connection connection = null;
            
    
    public static DBConnection getInstance(){
        if(instance == null){
            instance = new DBConnection();
        }
        return instance;
    }
    
    private Connection conectar(){
        Connection conn = null;
        String connString;
        try {
            Class.forName("net.sourceforge.jtds.jdbc.Driver");
            connString = "jdbc:jtds:sqlserver://" + SERVER + ";"
                    + "instance=" + INSTANC + ";"
                    + "databaseName=" + BBDD + ";"
                    + "user=" + USER + ";"
                    + "password=" + PASS + ";";
            conn = DriverManager.getConnection(connString);

        } catch (SQLException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }
    
    public Connection getConnection(){
        if(connection == null){
            connection = conectar();
        }
        return connection;
    }
    
    public static ResultSet devuelveResultSet(String query){

        ResultSet result=null;
        try {
            Statement statement= connection.createStatement();
            result=statement.executeQuery(query);
        } catch (SQLException e){
            e.printStackTrace();
        }
        return result;
        
    }

    
}

这是我的错误痕迹:

01-21 09:48:28.908: E/AndroidRuntime(2178): FATAL EXCEPTION: main
01-21 09:48:28.908: E/AndroidRuntime(2178): java.lang.NoSuchMethodError: java.lang.String.isEmpty
01-21 09:48:28.908: E/AndroidRuntime(2178):     at net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:282)
01-21 09:48:28.908: E/AndroidRuntime(2178):     at net.sourceforge.jtds.jdbc.SharedSocket.<init>(SharedSocket.java:251)
01-21 09:48:28.908: E/AndroidRuntime(2178):     at net.sourceforge.jtds.jdbc.JtdsConnection.<init>(JtdsConnection.java:331)
01-21 09:48:28.908: E/AndroidRuntime(2178):     at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184)
01-21 09:48:28.908: E/AndroidRuntime(2178):     at java.sql.DriverManager.getConnection(DriverManager.java:191)
01-21 09:48:28.908: E/AndroidRuntime(2178):     at java.sql.DriverManager.getConnection(DriverManager.java:154)
01-21 09:48:28.908: E/AndroidRuntime(2178):     at sql.DBConnection.conectar(DBConnection.java:43)
01-21 09:48:28.908: E/AndroidRuntime(2178):     at sql.DBConnection.getConnection(DBConnection.java:57)
01-21 09:48:28.908: E/AndroidRuntime(2178):     at com.engineering.ecg.ListinTelefonico.onCreate(ListinTelefonico.java:39)
01-21 09:48:28.908: E/AndroidRuntime(2178):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-21 09:48:28.908: E/AndroidRuntime(2178):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
01-21 09:48:28.908: E/AndroidRuntime(2178):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
01-21 09:48:28.908: E/AndroidRuntime(2178):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
01-21 09:48:28.908: E/AndroidRuntime(2178):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
01-21 09:48:28.908: E/AndroidRuntime(2178):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-21 09:48:28.908: E/AndroidRuntime(2178):     at android.os.Looper.loop(Looper.java:123)
01-21 09:48:28.908: E/AndroidRuntime(2178):     at android.app.ActivityThread.main(ActivityThread.java:4627)
01-21 09:48:28.908: E/AndroidRuntime(2178):     at java.lang.reflect.Method.invokeNative(Native Method)
01-21 09:48:28.908: E/AndroidRuntime(2178):     at java.lang.reflect.Method.invoke(Method.java:521)
01-21 09:48:28.908: E/AndroidRuntime(2178):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
01-21 09:48:28.908: E/AndroidRuntime(2178):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
01-21 09:48:28.908: E/AndroidRuntime(2178):     at dalvik.system.NativeStart.main(Native Method)
android sql-server eclipse database-connection
1个回答
0
投票

问题似乎出在数据库的服务器端。 试试这个方法:

public Connection getConnection() throws SQLException {

  Connection conn = null;
  Properties connectionProps = new Properties();
  connectionProps.put("user", this.userName);
  connectionProps.put("password", this.password);

  if (this.dbms.equals("mysql")) {
      conn = DriverManager.getConnection(
                 "jdbc:" + this.dbms + "://" +
                 this.serverName +
                 ":" + this.portNumber + "/",
                 connectionProps);
  } else if (this.dbms.equals("derby")) {
      conn = DriverManager.getConnection(
                 "jdbc:" + this.dbms + ":" +
                 this.dbName +
                 ";create=true",
                 connectionProps);
  }
  System.out.println("Connected to database");
  return conn;
}

如果这不起作用,请发布课程的其余部分。 有关 Java 中的数据库的更多信息:JDBC Oracle

© www.soinside.com 2019 - 2024. All rights reserved.