通过Android应用程序连接到OracleDB

时间:2011-04-20 08:59:35

标签: android oracle jdbc

渴望寻找,我希望你能帮助我。

目前,我想从我的Android应用程序中获取OracleDB服务器(在LAN上)的一些数据。我正在使用带有ojdbc14.jar的JDBC和我的Android应用程序中的以下代码以及我使用logcat的stackTrace:

http://pastebin.archlinux.fr/432118

正如你所看到的,有一个很大的例外,我无法修复它......

有人已经成功使用他的Android应用程序和没有web服务的OracleDB连接? 有人可以帮我解决这个例外吗?

有关信息:我试图更改ojdbc驱动程序(我做过的最糟糕的事情>。>),并检查了网址的有效性。

感谢您的帮助...

编辑:应用程序必须从OracleDB获取数据,并将其存储在Android的本地SQLite数据库中,因为Android设备将断开LAN连接(我不想让数据从网[3G])。断开连接后,该应用程序将使用SQLite上的本地数据。当用户的活动完成后,设备将重新连接到LAN,并且应用程序将编辑的SQLite本地数据与主Oracle DB服务器同步。 SQLite< - local - > App< - 连接/同步时---> OracleDB的

3 个答案:

答案 0 :(得分:4)

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

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

它可以作为一个自动处理同步的单独进程运行,也可以使用API​​调用来控制程序内的同步。如果这听起来像是对你有用的东西,check it out here

您可以从下载标签下载并试用。

解决问题的好运。

此致

埃里克 Oracle PM

答案 1 :(得分:1)

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

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

在那里,你会找到一个ojdbc14.jar。在项目中使用它,而不是在经典Oracle网页上找到的ojdbc14.jar。它有效!

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

谢谢大家, 最好的问候,

Eriatolc

答案 2 :(得分:0)

ORACLE数据库与LAN的ANDROID连接

授予一些明确权限

<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 Class

    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);
            }
        }

先决条件是: 注意,不需要添加依赖项lib ojdbc14.jar只需将ojdbc14.jar复制到您的JAVA_HOME jre - &gt; lib - &gt;分机和粘贴在这里ojdbc14.jar 然后首先通过cmd / terminal手动检查jdbc连接 制作任何简单的java程序 http://www.javatpoint.com/example-to-connect-to-the-oracle-database