我需要从我的应用程序android访问外部oracle数据库中的数据来更新本地数据库应用程序,但我不知道最好的方法是什么。 我是否需要创建一个Web服务来访问oracle数据库,还是有另一种简单的方法?
由于
答案 0 :(得分:17)
你有(至少)两个选择:
使用Oracle Database Mobile Server。 (最好,最安全的赌注)
下载JDBC Drivers并以此方式连接。 (不推荐,不安全 - 特别是对于无线连接)
答案 1 :(得分:3)
查看我的Android-Oracle Connectivity博文。这有望帮助你。如果还有问题。让我知道。
答案 2 :(得分:0)
您无法从Android应用程序直接访问Oracle数据库。您需要使用PHP,.net或Java创建Web服务以与Oracle数据库建立连接。创建此Web服务后,您需要将应用程序与Web服务连接。这是与Oracle数据库连接的最简单方法。
答案 3 :(得分:0)
你只能直接连接SQLiteDatabase .. 如果你想与MYSQL或Oracle连接,你必须创建Web服务,无论它是在PHP,.NET还是在JSP上。 但没有Web服务,你不能在android中使用oracle ...
它也可以通过JDBC连接完成,但我没有确切的例子......
答案 4 :(得分:0)
有一种比编写WebService更简单的方法,并且仍然保持相同的安全级别:使用使用三层体系结构的虚拟JDBC驱动程序:您的JDBC代码通过HTTP发送到过滤JDBC代码的远程Servlet (配置和安全性)在将其传递给Oracle JDBC驱动程序之前。结果通过HTTP发回。有一些免费软件使用这种技术。只是Google“基于HTTP的Android JDBC驱动程序”。
答案 5 :(得分:0)
我认为没有直接的方法将android应用程序与oracle db连接起来。 为此你需要php或java或.net的web服务。 根据我的PHP是连接Android应用程序与外部数据库的最佳方式。为此,你需要一个主机一个php页面。这个页面直接与oracle数据库连接。用于连接Android应用程序与PHP页面你需要一个json解析,这在Android应用程序开发中很容易。
答案 6 :(得分:0)
此外,还有一个使用SAP-Sybase(中线)和ORACLE的强大3层架构。使用JTDS驱动程序将Sybase DB连接到ORACLE。然后,在Android中使用您的生成代码。供参考:SQL Server and Sybase Databases
答案 7 :(得分: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连接make make simple java program http://www.javatpoint.com/example-to-connect-to-the-oracle-database