【发布时间】:2014-09-26 05:52:35
【问题描述】:
首先。我是 android 应用程序开发环境的新手,我正在尝试使用 jtds-1.3.1.jar 驱动程序通过简单的 android 应用程序连接到 mssqlserver 2008。我在互联网上搜索了很多示例,但我无法连接数据库。
我得到的异常是 Network error IOException: connection time out
我不知道我使用 Eclipse juno IDE 的代码有什么问题。
这是我的代码
package com.example.Testproject1;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
import android.widget.TextView;
import java.sql.*;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
connectTodatabase();
}
public void connectTodatabase()
{
TextView txtView=(TextView)findViewById(R.id.textView2);
String url = "jdbc:jtds:sqlserver://XXX.XXX.X.XXX:1433;DatabaseName=VautomateuShoppi";
String driver = "net.sourceforge.jtds.jdbc.Driver";
String userName = "VShopping_User";
String password = "VShopping_Pass";
// Declare the JDBC objects.
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try
{
// Establish the connection.
Class.forName(driver);
con = DriverManager.getConnection(url, userName, password);
// Create and execute an SQL statement that returns some data.
String SQL = "select * from SeoMaster";
stmt = con.createStatement();
rs = stmt.executeQuery(SQL);
// Iterate through the data in the result set and display it.
while (rs.next()) {
txtView.setText(rs.getString(2));
}
}
catch(Exception ex)
{
txtView.setText(ex.getMessage().toString());
}
}
}
【问题讨论】:
-
直接从 App 连接数据库?你确定吗 ?检查网络端口是否打开(但仍然不建议这样做,出于安全问题)
-
是的,我的网口打开了!
-
@Raptor 有哪些安全问题,您有什么建议?我有一个与 SQL 服务器对话的 asp.net 站点(但这对他们两个来说有点自然),在那里,敏感数据在配置中,显然在上面这样的代码中有 pw 和 un 会低于标准刹车的技巧......你会建议做什么?
-
永远不要直接从 Internet 连接 DB,除非连接是安全的(例如通过 VPN)。如果端口打开,您的数据库可能容易受到攻击。始终使用脚本处理请求并从数据库中获取数据!
标签: java android sql-server eclipse jtds