用于oracle 10g的android odbc连接

时间:2012-03-23 04:07:48

标签: android oracle connection odbc

  

可能重复:
  android jdbc odbc connection

之前我使用oracle数据库11g为我的Android应用程序和成功存储的值。不幸的是,由于某些问题,我的oracle数据库11g无法打开。我卸载了oracle 11g并安装了oracle数据库10g版。现在我编译程序并关闭模拟器并在oracle中打开表,无法存储值。我不知道这个问题是怎么发生的。在我的代码中,我将端口号为1521,sid为'orcl',表名为'sample'。请给出一个解决方案以及端口号和sid的任何更改。提前致谢

      package com.search;

      import java.sql.Connection;
      import java.sql.DriverManager;
      import java.sql.PreparedStatement;

      import android.app.Activity;
      import android.os.Bundle;

     public class OraclesearchActivity extends Activity {
   /** Called when the activity is first created. */
    @Override
     public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    String a="karthick";
    String b="vijay";
    String c="vel";
    try
    {
        DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

        Connection         con=DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.2:1521:orcl","system","words");

        PreparedStatement pst=con.prepareStatement("insert into sample(first,middle,last)values(?,?,?)");
        pst.setString(1,a);
        pst.setString(2,b);
        pst.setString(3,c);
        pst.executeUpdate();

    }
    catch(Exception e)
    {
        System.out.println("Exception:"+e);
    }
}
 }

2 个答案:

答案 0 :(得分:2)

可能不是您正在寻找的答案,但我会严肃质疑让移动设备直接连接到oracle或任何dbms的智慧。

相反,请考虑在您的dbms前放置REST或SOAP服务,并让您的移动应用程序连接到该服务。

其中一些好处包括:

  • 当您的dbms或dbms驱动程序更改版本时,您只需要 更新您的服务...不是很多移动设备。
  • 您没有移动设备上的dbms凭据,这些凭据可能会丢失或以恶意环境结束 有人可以尝试以任何你想要的方式暴力 保护凭证。
  • 您的服务可以支持许多不同类型的客户端/移动设备,而无需担心找到oracle驱动程序 例如,iOS设备。
  • 您可以通过服务更优雅地处理服务中断/计划停机时间...宣布不可用或替代方案 服务响应,而不仅仅是无法获得 连接可能与坏网络无法区分 连接。
  • 您可以通过各种缓存选项,验证和应用更精细的格式来​​增强服务。 上下文特定的授权,而不是您可能想要实现的 在oracle。 -

也许你真的有一些硬性要求直接连接,但我认为这将是一个罕见且非常具体的要求。更常见的做法似乎是缓冲与服务层的连接,为您提供更大的灵活性,恕我直言。

祝你好运。

答案 1 :(得分:0)

我同意第一个答案,不建议将移动设备直接连接到RDBMS。对此有严重的安全隐患,更不用说性能和其他影响了。

如果您不想解决构建自己的Web服务的问题,可以在数据库级别处理它。 Oracle实际上提供了专门为此设计的产品。它被称为数据库移动服务器。

http://www.oracle.com/technetwork/products/database-mobile-server/overview/index.html

您可以在那里阅读,也可以从下载标签下载并试用。除Oracle数据库外,您还需要一个应用服务器。建议使用WebLogic或Glassfish。

它提供了几个优点,主要是能够将Android设备中的SQLite数据与Oracle后端同步而无需任何额外的开发工作。您还可以让应用程序在断开连接模式下运行。

祝你的项目好运。

Eric Jensen, Oracle PM