Каков наилучший способ соединения между базой данных Android и Oracle? - PullRequest
11 голосов
/ 17 января 2012

Мне нужно получить доступ к данным из внешней базы данных оракула из моего приложения Android, чтобы обновить приложение локальной базы данных, но я не знаю, как лучше всего это сделать.Нужно ли создавать веб-сервис для доступа к базе данных Oracle или есть другой простой способ?

Спасибо

Ответы [ 8 ]

19 голосов
/ 17 января 2012

У вас есть (как минимум) две опции:

  1. Использование Oracle Database Mobile Server .(Лучшая, самая безопасная ставка)

  2. Загрузите драйверы JDBC и подключитесь таким образом.(Не рекомендуется, небезопасно - особенно для беспроводной связи)

3 голосов
/ 07 августа 2012

Загляните в мой Android-Oracle Connectivity блог. Это, надеюсь, поможет вам. Если все еще у вас есть проблемы. Дайте мне знать об этом.

0 голосов
/ 08 февраля 2017

СОЕДИНЕНИЕ БАЗЫ ДАННЫХ ORACLE С ANDROID ЧЕРЕЗ LAN

Предоставление некоторых разрешений для манифеста

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

Предварительные условия: обратите внимание, что нет необходимости добавлять зависимость lib ojdbc14.jar, просто скопируйте ojdbc14.jar в свой JAVA_HOME jre -> lib -> ext & paste сюда ojdbc14.jar, а затем сначала вручную проверьте соединение jdbc с помощью cmd / терминала, сделав любойпростая Java-программа http://www.javatpoint.com/example-to-connect-to-the-oracle-database

0 голосов
/ 14 июля 2014

Также существует одна надежная 3-уровневая архитектура, использующая SAP-Sybase (Middle wire) с ORACLE. Подключите вашу Sybase DB к ORACLE с драйвером JTDS. Затем используйте свой генерирующий код в Android. Для справки: Базы данных SQL Server и Sybase

0 голосов
/ 14 июля 2014

Я думаю, что нет прямого способа соединить приложения для Android с oracle db. Для этого вам понадобится веб-сервис php или java или .net. по моему мнению, php - лучший способ связать приложения для Android с внешней базой данных. Для этого вам понадобится хост с одной страницей php. Эта страница напрямую соединяется с базой данных Oracle. для соединения приложений Android с php-страницей вам необходим разбор json, который легко сделать при разработке приложений для Android.

0 голосов
/ 04 декабря 2012

Существует более простой способ, чем написание WebService и поддержание того же уровня безопасности: используйте виртуальный драйвер JDBC, который использует трехуровневую архитектуру: ваш код JDBC отправляется через HTTP на удаленный сервлет, который фильтрует код JDBC (настройка и безопасность) перед передачей его в драйвер JDBC Oracle. Результат отправляется обратно через HTTP. Есть несколько бесплатных программ, которые используют эту технику. Просто Google "Драйвер Android JDBC через HTTP".

0 голосов
/ 17 января 2012

в Android вы можете напрямую подключиться только к SQLiteDatabase. если вы хотите соединиться с MYSQL или Oracle, необходимо создать веб-сервис, будь то PHP, .NET или JSP. но без веб-сервиса вы не можете использовать оракул в Android ...

это также может быть сделано через подключение JDBC, но у меня нет точного примера этого ...

0 голосов
/ 17 января 2012

Вы не можете напрямую получить доступ к базе данных Oracle из приложения Android. вам нужно создать веб-сервисы на PHP, .net или на Java, чтобы установить соединение с базой данных Oracle. После создания этого веб-сервиса вам необходимо подключить ваше приложение к веб-сервису. Это самый простой способ соединения с базой данных Oracle.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...