非常感谢,希望你能帮助我。
目前,我想从我的安卓应用程序的OracleDB服务器(在局域网上)获取一些数据。我将JDBC与ojdbc14.jar一起使用,在我的安卓应用程序中使用以下代码,并将我的stackTrace与logcat一起使用:
http://pastebin.archlinux.fr/432118
如你所见,有一个很大的例外,我无法修复它……
有没有人已经成功地通过他的安卓应用程序连接到了OracleDB,但没有网络服务?有人能帮我修复这个异常吗?
参考资料:我曾尝试更改ojdbc驱动程序(这是我做过的最糟糕的>.>操作),并检查了URL的有效性。
谢谢你的帮助..。
编辑:应用程序将不得不从OracleDB获取数据,并将其存储在安卓的本地SQLite DB上,因为安卓设备将断开局域网的连接(我不想让数据从Web3G访问)。一旦断开连接,该应用程序将使用SQLite上的本地数据。当用户的活动完成后,设备将重新连接到局域网,应用程序将编辑的SQLite本地数据与主Oracle DB服务器同步。SQLite <--本地-->应用<--连接时/同步-> OracleDB
发布于 2011-04-20 17:08:51
Oracle实际上有一个专门为将Oracle数据库与移动设备同步而设计的产品。它被称为移动服务器。
但是,使用模型与您所描述的略有不同;您将使用本地Berkeley DB或SQLite数据库,而不是直接连接到Oracle数据库,然后移动服务器会将其与Oracle数据库同步。
它可以作为一个单独的进程运行,自动处理同步,或者您可以使用API调用从您的程序中控制同步。如果这听起来对你有用,check it out here。
您可以从download选项卡下载并试用它。
祝你好运,解决你的问题。
问候
Eric,Oracle PM
发布于 2011-04-26 20:04:13
我已经找到答案了!产品Oracle Database Lite就是解决方案。我解释..。
Oracle Database Lite是一个很大的产品,其文档令人费解。我不可能理解它是如何工作的。但是,我已经试过安装它了。并且,在安装文件夹中有一个jdbc文件夹。
在那里,您将找到一个ojdbc14.jar。在您的项目中使用它,而不是在传统Oracle网页上找到ojdbc14.jar。而且它起作用了!
您将能够使用JDBC通过Android应用程序连接Oracle DB。
感谢所有人,致以最好的问候
Eriatolc
发布于 2017-02-08 16:09:49
通过局域网连接ORACLE数据库与安卓
授予一些清单权限
<permission
android:name="info.android.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="info.android.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>MainActivity类
package example.com.myapplication;
import java.sql.Connection;
import java.sql.DriverManager;
import android.os.StrictMode;
public class MainActivity extends AppCompatActivity {
private static final String DEFAULT_DRIVER = "oracle.jdbc.driver.OracleDriver";
private static final String DEFAULT_URL = "jdbc:oracle:thin:@192.168.0.1:1521:xe";
private static final String DEFAULT_USERNAME = "system";
private static final String DEFAULT_PASSWORD = "oracle";
private Connection connection;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
TextView tv = (TextView) findViewById(R.id.hello);
try {
this.connection = createConnection();
e.Log("Connected");
Statement stmt=connection.createStatement();
ResultSet rs=stmt.executeQuery("select * from cat");
while(rs.next()) {
System.out.println("hello : " + rs.getString(1));
}
connection.close();
}
catch (Exception e) {
e.Log(""+e);
e.printStackTrace();
}
}
public static Connection createConnection(String driver, String url, String username, String password) throws ClassNotFoundException, SQLException {
Class.forName(driver);
return DriverManager.getConnection(url, username, password);
}
public static Connection createConnection() throws ClassNotFoundException, SQLException {
return createConnection(DEFAULT_DRIVER, DEFAULT_URL, DEFAULT_USERNAME, DEFAULT_PASSWORD);
}
}前提条件是:注意,不需要添加依赖库ojdbc14.jar只需将ojdbc14.jar复制到您的JAVA_HOME jre ->库-> ext并粘贴到这里ojdbc14.jar,然后首先通过命令/终端手动检查jdbc连接使任何简单的java程序http://www.javatpoint.com/example-to-connect-to-the-oracle-database
https://stackoverflow.com/questions/5727857
复制相似问题