在Android中连接到Oracle

所以人们可能会告诉我这是一个坏主意,但我至少想让它尝试一下。

此应用程序的目的是仅当设备与oracle

db位于同一网络中或通过VPN连接到网络时才可以工作。数据库中的信息将无法全局访问,这就是为什么我需要直接连接到oracle db的原因。

现在根据这个线程

他成功查询了oracle db。

因此,我有一个相当基本的类,在初始化时将尝试与我的数据库建立连接。

package com.producermobile;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import android.util.Log;

public class ConnectOra {

private Connection conn;

private Statement stmt;

public ConnectOra() throws ClassNotFoundException {

try {

Class.forName("oracle.jdbc.driver.OracleDriver");

String url = "jdbc:oracle:thin:@x.x.x.x:1521:PR10";

this.conn = DriverManager.getConnection(url,"xxx","xxx");

this.conn.setAutoCommit(false);

this.stmt = this.conn.createStatement();

} catch(SQLException e) {

Log.d("tag", e.getMessage());

}

}

public ResultSet getResult() throws SQLException {

ResultSet rset = stmt.executeQuery("select customer from customers");

stmt.close();

return rset;

}

}

在我的主要活动onCreate方法中,我有这个

@Override

public void onCreate(Bundle savedInstanceState) {

try {

super.onCreate(savedInstanceState);

ConnectOra db = new ConnectOra();

ResultSet rs = db.getResult();

ArrayList<String> list = new ArrayList<String>();

while(rs.next()) {

list.add(rs.getString(1));

}

setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, list));

ListView lv = getListView();

lv.setTextFilterEnabled(true);

} catch(Exception e) {

}

}

在Eclipse中,我将外部ojdbc14.jar文件添加到构建路径。

但是当我跑步时

this.conn = DriverManager.getConnection(url,"xxx","xxx");

我收到以下异常

“异常:网络适配器无法建立连接”

但是,如果我在标准的Java应用程序中使用main方法创建此类的实例,则该连接有效。有任何想法吗?

回答:

:)是的,我会告诉你这是一个“坏”主意。恕我直言,鉴于Android应用程序旨在在可能会导致连接问题或暂时失去连接的手机上运行,​​因此我认为每个好的应用程序都应具有一定程度的离线功能。因此,您将实现一些非常基本的同步机制-

例如与SampleSyncAdapter演示的-

与应用程序本地SQLite db同步。

我认为这是最好的方法(也是为了用户体验)。

以上是 在Android中连接到Oracle 的全部内容, 来源链接: utcz.com/qa/422889.html

回到顶部