连接Android和Oracle数据库的最佳方法是什么?

12

我需要从外部Oracle数据库中访问数据,以便通过我的Android应用程序更新本地数据库。但是我不知道最好的方法是什么。

我是否需要创建一个Web服务来访问Oracle数据库,或者还有其他简单的方法?

谢谢


1
这是我的答案,你可以在这个链接中查看:http://stackoverflow.com/questions/31536756/how-to-connect-android-with-oracle-database - Rashiduzzaman Khan
7个回答

20

2
稍微解释一下克里斯的回答,Oracle Database Mobile Server 是一种同步解决方案。这里的优点在于,你可以像平常开发 Android 应用程序一样使用 Android 操作系统 SQLite 的例程进行开发。然后(当你部署了服务器之后)只需在设备上配置和安装同步客户端即可。它将使你的本地 SQLite 数据与后端 Oracle 数据库保持同步。 - Eric Jensen

0

有一种比编写 WebService 更简单的方法,同时保持相同的安全级别:使用一个虚拟 JDBC 驱动程序,该驱动程序使用三层架构:您的 JDBC 代码通过 HTTP 发送到远程 Servlet,该 Servlet 在将其传递给 Oracle JDBC 驱动程序之前过滤 JDBC 代码(配置和安全性)。结果通过 HTTP 发送回给您。有一些免费软件使用这种技术。只需在 Google 上搜索“Android JDBC Driver over HTTP”即可。


0
我认为没有直接连接Android应用程序与Oracle数据库的方法。 为此,您需要使用PHP或Java或.NET的Web服务。 根据我的经验,使用PHP是将Android应用程序与外部数据库连接的最佳方式。为此,您需要托管一个PHP页面。该页面可以直接连接Oracle数据库。要将Android应用程序与PHP页面连接,您需要进行JSON解析,在Android应用程序开发中很容易实现。

通过局域网连接Android与Oracle数据库 - Brainsbot

0

还有一种强大的3层体系结构,使用SAP-Sybase(中间层)和ORACLE。使用JTDS驱动程序将您的Sybase数据库连接到ORACLE。然后,在Android中使用您生成的代码。参考资料:SQL Server and Sybase Databases


0

你不能直接从Android应用程序访问Oracle数据库。你需要在PHP、.net或Java中创建Web服务来连接Oracle数据库。创建完这个Web服务后,你需要将应用程序连接到该Web服务。这是连接Oracle数据库的最简单方法。


4
这并不完全正确。你可以通过JDBC来实现,只是这并不是世界上最安全的事情。 - Chris Cashwell
2
@silent_killer 请查看Oracle的JDBC下载页面以获取示例。寻找demo.zip:http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html - Chris Cashwell
请检查下方的直接连接链接。 - Brainsbot

0

在Android中,您只能直接连接到SQLiteDatabase。如果您想连接MYSQL或Oracle,则必须创建Web服务,无论是在PHP、.NET还是JSP上。但是,如果没有Web服务,您无法在Android中使用Oracle...

也可以通过JDBC连接来实现,但我没有确切的示例...


0

通过局域网实现 Android 与 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 -> lib -> ext并在此处粘贴ojdbc14.jar,然后首先通过cmd /终端手动检查jdbc连接,制作任何简单的java程序http://www.javatpoint.com/example-to-connect-to-the-oracle-database


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接