首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过安卓应用连接到OracleDB

通过安卓应用连接到OracleDB
EN

Stack Overflow用户
提问于 2011-04-20 16:59:35
回答 3查看 15.8K关注 0票数 1

非常感谢,希望你能帮助我。

目前,我想从我的安卓应用程序的OracleDB服务器(在局域网上)获取一些数据。我将JDBC与ojdbc14.jar一起使用,在我的安卓应用程序中使用以下代码,并将我的stackTrace与logcat一起使用:

http://pastebin.archlinux.fr/432118

如你所见,有一个很大的例外,我无法修复它……

有没有人已经成功地通过他的安卓应用程序连接到了OracleDB,但没有网络服务?有人能帮我修复这个异常吗?

参考资料:我曾尝试更改ojdbc驱动程序(这是我做过的最糟糕的>.>操作),并检查了URL的有效性。

谢谢你的帮助..。

编辑:应用程序将不得不从OracleDB获取数据,并将其存储在安卓的本地SQLite DB上,因为安卓设备将断开局域网的连接(我不想让数据从Web3G访问)。一旦断开连接,该应用程序将使用SQLite上的本地数据。当用户的活动完成后,设备将重新连接到局域网,应用程序将编辑的SQLite本地数据与主Oracle DB服务器同步。SQLite <--本地-->应用<--连接时/同步-> OracleDB

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-20 17:08:51

Oracle实际上有一个专门为将Oracle数据库与移动设备同步而设计的产品。它被称为移动服务器。

但是,使用模型与您所描述的略有不同;您将使用本地Berkeley DB或SQLite数据库,而不是直接连接到Oracle数据库,然后移动服务器会将其与Oracle数据库同步。

它可以作为一个单独的进程运行,自动处理同步,或者您可以使用API调用从您的程序中控制同步。如果这听起来对你有用,check it out here

您可以从download选项卡下载并试用它。

祝你好运,解决你的问题。

问候

Eric,Oracle PM

票数 4
EN

Stack Overflow用户

发布于 2011-04-26 20:04:13

我已经找到答案了!产品Oracle Database Lite就是解决方案。我解释..。

Oracle Database Lite是一个很大的产品,其文档令人费解。我不可能理解它是如何工作的。但是,我已经试过安装它了。并且,在安装文件夹中有一个jdbc文件夹。

在那里,您将找到一个ojdbc14.jar。在您的项目中使用它,而不是在传统Oracle网页上找到ojdbc14.jar。而且它起作用了!

您将能够使用JDBC通过Android应用程序连接Oracle DB。

感谢所有人,致以最好的问候

Eriatolc

票数 1
EN

Stack Overflow用户

发布于 2017-02-08 16:09:49

通过局域网连接ORACLE数据库与安卓

授予一些清单权限

代码语言:javascript
复制
<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类

代码语言:javascript
复制
    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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5727857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档