programing

안드로이드와 오라클 데이터베이스를 연결하는 가장 좋은 방법은 무엇입니까?

sourcejob 2023. 11. 5. 11:32
반응형

안드로이드와 오라클 데이터베이스를 연결하는 가장 좋은 방법은 무엇입니까?

로컬 데이터베이스 애플리케이션을 업데이트하려면 애플리케이션 안드로이드에서 외부 오라클 데이터베이스의 데이터에 액세스해야 하는데 어떻게 하는 것이 최선인지 모르겠습니다.오라클 데이터베이스에 액세스하기 위해 웹 서비스를 만들어야 합니까 아니면 다른 간단한 방법이 있습니까?

감사해요.

적어도 두 가지 옵션이 있습니다.

  1. Oracle Database Mobile Server를 사용합니다. (최상, 가장 안전한 방법)

  2. JDBC Drivers(JDBC Drivers)를 다운로드하여 연결합니다. (권장되지 않음, 안전하지 않음 - 특히 공중 연결의 경우)

Android Application에서는 Oracle 데이터베이스에 직접 액세스할 수 없습니다.Oracle Database와 연결하려면 PHP, .net 또는 Java에서 웹 서비스를 만들어야 합니다.이 웹 서비스를 만든 후에는 응용 프로그램을 웹 서비스와 연결해야 합니다.이것이 Oracle Database와 연결하는 가장 간단한 방법입니다.

Android에서는 SQLiteDatabase와 직접 연결만 가능합니다.만약 당신이 MYSQL이나 Oracle과 연결하기를 원한다면 그것이 PHP에 있을 것인지 아닌지 당신이 웹 서비스를 만들어야 하는 것은 필요합니다.NET 또는 JSP..웹 서비스가 없으면 안드로이드에서 오라클을 사용할 수 없습니다.

JDBC 연결을 통해서도 가능하지만 정확한 예는 없었습니다...

안드로이드 앱과 오라클 db를 직접 연결하는 방법은 없다고 생각합니다. 이를 위해서는 php나 java 또는 .net 서비스를 웹 서비스해야 합니다. mephp에 따르면 안드로이드 앱과 외부 데이터베이스를 연결하는 가장 좋은 방법입니다. 이를 위해서는 호스트 하나의 php 페이지가 필요합니다.이 페이지는 오라클 데이터베이스와 직접 연결됩니다.안드로이드 앱과 php 페이지를 연결하려면 안드로이드 앱 개발에서 쉽게 할 수 있는 json 파싱이 필요합니다.

또한 오라클과 함께 SAP-Sybase(Middle wire)를 사용하는 강력한 3-Tier 아키텍처도 있습니다.JTDS 드라이버로 Sybase DB를 ORACLE에 연결합니다.그러면 안드로이드에서 생성 코드를 사용합니다.참고: SQL ServerSybase 데이터베이스

웹 서비스를 작성하고 동일한 수준의 보안을 유지하는 것보다 간단한 방법이 있습니다. 3계층 아키텍처를 사용하는 Virtual JDBC Driver를 사용합니다. JDBC 코드는 HTTP를 통해 JDBC 코드(구성 및 보안)를 필터링하는 원격 서블릿으로 전송된 후 Oracle JDBC Driver로 전달됩니다.결과는 HTTP를 통해 다시 전송됩니다.이 기술을 사용하는 일부 무료 소프트웨어가 있습니다.그냥 구글 "Android JDBC Driver over HTTP".

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"/>

주 활동 클래스

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

전제 조건은 다음과 같습니다. 참고로 종속성 libojdbc14.jar를 추가할 필요는 없습니다. 단지 ojdbc14.jar를 당신의 JAVA_에 복사합니다.HOME jre -> lib -> ext & paste here ojdbc14.jar 그런 다음 cmd/terminal make any simple java program http://www.javatpoint.com/example-to-connect-to-the-oracle-database 을 통해 jdbc 연결을 수동으로 확인합니다.

언급URL : https://stackoverflow.com/questions/8894665/what-is-the-best-way-to-connect-between-android-and-oracle-database

반응형