如何在Android中使用JTDS驱动连接sql server

Posted

技术标签:

【中文标题】如何在Android中使用JTDS驱动连接sql server【英文标题】:how to connect sql server using JTDS driver in Android 【发布时间】:2011-10-03 06:39:24 【问题描述】:

我是安卓新手.. 我想使用 JTDS 驱动程序连接 sql server。 谁能告诉我..

请提前...

【问题讨论】:

我也有同样的问题,你能帮帮我吗? 【参考方案1】:

android 上使用 JTDS 直接访问 SQLSERVER 时出现错误“ClassNotFoundException”?

RND 3 小时后,寻找解决上述相同错误的方法。我没有得到代码中没有错误,而且我已经正确导入“jtds-1.3.0”库继续调试代码仍然一次又一次地出现同样的错误。


 Class.forName("net.sourceforge.jtds.jdbc.Driver");

 Connection conn = DriverManager.getConnection(
 db_connect_string, db_userid, db_password);

我尝试了替代方案,换行

...... Class.forName("net.sourceforge.jtds.jdbc.Driver");

...... (new Driver()).getClass();

...... (new Driver())

当我尝试了所有这些时,我认为jtds-1.3.0库可能有问题,我做了什么,只需下载旧版本的jtds-1.2.5并导入即可;问题解决了。

所以,朋友们如果你遇到同样的错误并且已经尝试了不同的方法,试试这个。

【讨论】:

注意我试过'jtds-1.3.0',并通过制作JAVA APPLICATION来测试它,它工作正常,但它不能与ANDROID一起工作......知道为什么! 我遇到了同样的错误,我使用 1.3.0 并使其 java 应用程序工作,但不能在 android 上工作,所以我下载 jtds-1.2.5.jar 并替换为 jtds-1.3.0 .它奏效了。【参考方案2】:

奇怪的是 jTDS 网站上没有示例代码。我发现了这个,它可能会有所帮助:

http://www.java-tips.org/other-api-tips/jdbc/how-to-connect-microsoft-sql-server-using-jdbc-3.html

import java.sql.*;

public class testConnection

    public static void main(String[] args) 
    
        DB db = new DB();
        db.dbConnect("jdbc:jtds:sqlserver://localhost:1433/tempdb","sa","");
    


class DB

    public DB() 

    public voidn dbConnect(String db_connect_string, String db_userid, String db_password)
    
        try
        
            Class.forName("net.sourceforge.jtds.jdbc.Driver");
            Connection conn = DriverManager.getConnection(
            db_connect_string, db_userid, db_password);
            System.out.println("connected");
        
        catch (Exception e)
        
            e.printStackTrace();
        
    
;

编辑: 当找不到您的主类时,您将收到ClassNotFoundException 异常。在您的AndroidManifest.xml 中找到以下行,确保它们是正确的:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.ezee.app"  
/*...*/
<activity android:name=".connect12" 

还要确保该类存在于your_project_folder/src/com/ezee/app/connect12(我认为区分大小写)

【讨论】:

【参考方案3】:

根据我的经验,如果您使用 Android 与 SQL Server 的独立安装,则必须使用 10.0.2.2 地址而不是“localhost”或“127.0.0.1”,根据用于访问 localhost 服务器的 Android 细节.

我试过了,已经成功连接到我的 SQL Server。

【讨论】:

【参考方案4】:
Exception in thread "main" java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at com.test.objectref.GroupBy.main(GroupBy.java:12)

要解决这个问题不得不添加Jtds lib

【讨论】:

以上是关于如何在Android中使用JTDS驱动连接sql server的主要内容,如果未能解决你的问题,请参考以下文章

使用 JDBC 的 SQL Server 连接 - JTDS

Java连接SQL Server:jTDS驱动兼容性问题

jTDS Java连接SQL Server 2000数据库

使用android访问SQLServer数据库

android 使用jdbc1.3.0 操作 sql server

android 如何连接sqlserver数据库