0

我想将我的 android 应用程序连接到我的 MSSQL 数据库。不幸的是,有一个问题:/

10-25 19:17:00.536: W/System.err(18961): java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver 10-25 19:17:00.546: W/System.err(18961) : 在 java.lang.Class.classForName(Native Method) 10-25 19:17:00.556: W/System.err(18961): 在 java.lang.Class.forName(Class.java:217) 10-25 19 :17:00.556: W/System.err(18961): at java.lang.Class.forName(Class.java:172) 10-25 19:17:00.556: W/System.err(18961): at com. example.mssqlcon.MainActivity.onCreate(MainActivity.java:21) 10-25 19:17:00.556: W/System.err(18961): 在 android.app.Activity.performCreate(Activity.java:4465) 10-25 19:17:00.556: W/System.err(18961): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 10-25 19:17:00.556: W/System.err(18961): 在 android .app.ActivityThread.performLaunchActivity(ActivityThread.java:2033) 10-25 19:17:00.556: W/System.err(18961): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2104) 10-25 19:17:00.556: W/System.err(18961): 在 android.app.ActivityThread .access$600(ActivityThread.java:132) 10-25 19:17:00.556: W/System.err(18961): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1157) 10-25 19: 17:00.556: W/System.err(18961): 在 android.os.Handler.dispatchMessage(Handler.java:99) 10-25 19:17:00.556: W/System.err(18961): 在 android.os .Looper.loop(Looper.java:137) 10-25 19:17:00.566: W/System.err(18961): 在 android.app.ActivityThread.main(ActivityThread.java:4575) 10-25 19:17 :00.566: W/System.err(18961): at java.lang.reflect.Method.invokeNative(Native Method) 10-25 19:17:00.566: W/System.err(18961): at java.lang.reflect .Method.invoke(Method.java:511) 10-25 19:17:00.566:W/System.err(18961): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 10-25 19:17:00.566: W/System.err(18961): 在 com .android.internal.os.ZygoteInit.main(ZygoteInit.java:556) 10-25 19:17:00.566: W/System.err(18961): at dalvik.system.NativeStart.main(Native Method) 10-25 19:17:00.566: W/System.err(18961): 由: java.lang.NoClassDefFoundError: net/sourceforge/jtds/jdbc/Driver 10-25 19:17:00.566: W/System.err(18961) : ... 18 更多 10-25 19:17:00.566: W/System.err(18961): Caused by: java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver 10-25 19:17:00.576 : W/System.err(18961): 在 dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 10-25 19:17:00.576: W/System.err(18961): 在 java.lang.ClassLoader。 loadClass(ClassLoader.java:501) 10-25 19:17:00.576:W/System.err(18961): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 10-25 19:17:00.576: W/System.err(18961): ... 18 更多

我的代码:

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    try {
        Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();

        Connection connection = DriverManager.getConnection(
                "jdbc:jtds:sqlserver://ip_of_my_database", "*****", "*******");
        Statement statement = connection.createStatement();
        //ResultSet result = statement
        //      .executeQuery("SELECT * FROM nazwatabeli");
        ResultSet result = statement.executeQuery("SELECT * FROM name");
        if(result.first()){
            do{
                Log.v("MainActivity", "Name: "+result.getString(result.getRow()));
            } while(result.next());

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

}

我做错了什么?

4

1 回答 1

0

您无法使用 Android 设备直接访问 SQL Server。您必须使用一种网络服务来访问连接了 SQL 的服务器。您可以使用 java 或 php 来执行此操作。检查以下链接以获取带有 android 的 java webservices。

http://sarangasl.blogspot.com/2011/10/android-web-service-access-tutorial.html

您使用的 SDK 版本是什么?如果它是 r20 或更高版本,则必须在整个项目中包含所有用于项目内 lib 文件夹的外部库文件。否则它会告诉 ClassNotFoundException。如果您需要任何澄清,请告诉我。

于 2012-10-25T17:30:58.537 回答