Так что люди, вероятно, скажут мне, что это плохая идея, но я хотел бы, по крайней мере, попробовать.
РЕДАКТИРОВАТЬ Цель этого приложения состоит в том, что оно может работать только в том случае, если устройство является частью той же сети, в которой включена база данных oracle или подключена к сети через VPN.Информация в базе данных не станет общедоступной, поэтому мне понадобится прямое подключение к базе данных oracle.
Теперь согласно этой теме
Подключение оракула в приложении для Android
Он успешно запросил у оракула 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");
, я получаю следующее исключение
"Исключение Io:Сетевой адаптер не может установить соединение "
Если, однако, я создаю экземпляр этого класса в стандартном приложении Java с методом main, соединение работает.Есть идеи?