如何使用库 jTDS JDBC 驱动程序将 android 应用程序连接到 sql server 2012

Posted

技术标签:

【中文标题】如何使用库 jTDS JDBC 驱动程序将 android 应用程序连接到 sql server 2012【英文标题】:How to connect android application to sql server 2012 using library jTDS JDBC Driver 【发布时间】:2014-07-02 06:10:30 【问题描述】:

我是新会员,安卓开发者。当我使用库 jTDS JDBC 驱动程序 (jtds-1.2.7) 连接到 sql server 时,我收到此错误:

    unknown server host name unable to resolve host "127.0.0.0.1\sqlexpress": No address associated with hostname

这里是源代码:

Connection connection ;
@Override
protected void onCreate(Bundle savedInstanceState) 
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
connection=CONN("sa", "abc123", "SqlForandroid", "127.0.0.1\\sqlexpress:1433");


@SuppressLint("NewApi")
private Connection CONN(String _user, String _pass, String _DB, String _server )

StrictMode.ThreadPolicy policy = new    StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
Connection conn = null;
String ConnURL = null;
try 

    Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
    ConnURL = "jdbc:jtds:sqlserver://" + _server + ";"+"databaseName=" + _DB + ";user=" + _user + ";password=" + _pass +";";
    conn = DriverManager.getConnection(ConnURL);        
 catch (SQLException se) 
    Log.e("ERRO",se.getMessage());
 catch (ClassNotFoundException e) 
    Log.e("ERRO",e.getMessage());
 catch (Exception e) 
    Log.e("ERRO",e.getMessage());


return conn;

我需要一个解决方案...

【问题讨论】:

【参考方案1】:

您正在尝试连接到 127.0.0.1。那是你自己。我怀疑数据库在你的手机上,因为它不是 SQLite。修正 IP 地址。

顺便说一句,从安全角度来看,通过移动设备直接连接到数据库是一个坏主意。它要求您允许任何 IP 连接到您的数据库。更好的方法是在两者之间放置一个 web 服务,然后只允许该 PC 直接连接到数据库。它使访问您的数据变得更加困难。

【讨论】:

非常感谢!我找到了解决方案。那就是改变IP地址

以上是关于如何使用库 jTDS JDBC 驱动程序将 android 应用程序连接到 sql server 2012的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat 8 上 jTDS JDBC 驱动程序的 AbstractMethodError

SqlClient/OLEDB 驱动程序的连接字符串,如 jdbc:jtds 驱动程序?

ms sql microsoft的jdbc驱动和jTDS的驱动的区别

Eclipse 无法加载 JDBC Driver 类:net.sourceforge.jtds.jdbc.Driver?

JDBC:jtds getString() 以科学计数法返回双精度数

通过 JTDS 驱动程序执行 SQL Server 调用时出现“第 24 行位置的 JDBC 转义语法无效 '=' 预期字符”错误的原因?