如何实现android访问oracle数据库

如何实现android访问oracle数据库,第1张

通过cmd可对数据库进行访问,现在开发android一般都用的eclipse+adt+sdk;进入cmd输入adb

shell

,然后

cd

/data/data

再ls

显示所有的包名,cd

到你的包名,然后

cd

databases

再ls

显示你的数据库名

,最后

sqlite3

数据库名

就可以对数据库进行 *** 作了。

1)JDBC-ODBC桥加ODBC驱动程序

JavaSoft桥产品利用ODBC驱动程序提供JDBC访问。注意,必须将ODBC二进制代码(许多情况下还包括数据库客户机代码)加载到使用该驱动程序的每个客户机上。因此,这种类型的驱动程序最适合于企业网(这种网络上客户机的安装不是主要问题),或者是用Java编写的三层结构的应用程序服务器代码。

(2)本地API

这种类型的驱动程序把客户机API上的JDBC调用转换为Oracle、Sybase、Informix、DB2或其它DBMS的调用。注意,象桥驱动程序一样,这种类型的驱动程序要求将某些二进制代码加载到每台客户机上。

(3)JDBC网络纯Java驱动程序

这种驱动程序将JDBC转换为与DBMS无关的网络协议,之后这种协议又被某个服务器转换为一种DBMS协议。这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上。所用的具体协议取决于提供者。通常,这是最为灵活的JDBC驱动程序。有可能所有这种解决方案的提供者都提供适合于Intranet用的产品。为了使这些产品也支持Internet访问,它们必须处理Web所提出的安全性、通过防火墙的访问等方面的额外要求。几家提供者正将JDBC驱动程序加到他们现有的数据库中间件产品中。

(4)本地协议纯Java驱动程序

这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议。这将允许从客户机机器上直接调用DBMS服务器,是Intranet访问的一个很实用的解决方法。由于许多这样的协议都是专用的,因此数据库提供者自己将是主要来源,有几家提供者已在着手做这件事了。

据专家预计第(3)、(4)类驱动程序将成为从JDBC访问数据库的首方法。第(1)、(2)类驱动程序在直接的纯Java驱动程序还没有上市前会作为过渡方案来使用。对第(1)、(2)类驱动程序可能会有一些变种,这些变种要求有连接器,但通常这些是更加不可取的解决方案。第(3)、(4)类驱动程序提供了Java的所有优点,包括自动安装(例如,通过使用JDBC驱动程序的appletapplet来下载该驱动程序)。

用JAVA连接数据库主要有两种方式,一是用JDBC-ODBC桥来连接,二是用相关厂商提供的相应驱动程序来连接,首先谈谈第一种连接。 \x0d\\x0d\JDBC-ODBC桥接器是用JdbcOdbcClass和一个用于访问ODBC驱动程序的本地库实现的。对于WINDOWS平台,该本地库是一个动态连接库DLL(JDBCODBCDLL)。 \x0d\\x0d\由于JDBC在设计上与ODBC很接近。在内部,这个驱动程序把JDBC的方法映射到ODBC调用上,这样,JDBC就可以和任何可用的ODBC驱动程序进行交互了。这种桥接器的优点是,它使JDBC目前有能力访问几乎所有的数据库。通行方式如图所示: \x0d\\x0d\应用程序---JDBC API---JDBC-ODBC---ODBC API---ODBC层---数据源 \x0d\\x0d\具体 *** 作方法为: \x0d\\x0d\首先打开控制面板的管理工具,打开数据源(ODBC),在用户DSN里面添加数据源(即你要连接的数据库的名字),在这里假定连接SQL SERVER 2000的GoodsSupply数据库。名称填写你要连接的数据库的名称(GoodsSupply),然后逐步设置,如果选用了使用SQL-SERVER密码认证的话,就要输入相应的用户名及密码连接到数据库。一路下一步设置完成。 \x0d\\x0d\在JAVA里面编写程序进行测试,在这里我的程序是让用户输入任意的表名与与列名,把该列的所有数据输出。源代码如下: \x0d\\x0d\import javaioBufferedReader; \x0d\import javaioInputStreamReader; \x0d\import javasql; \x0d\\x0d\public class ODBCBridge { \x0d\\x0d\public static void main(String[] args) { \x0d\String url="jdbc:odbc:GoodsSupply"; \x0d\Statement sm=null; \x0d\String command=null; \x0d\ResultSet rs=null; \x0d\String tableName=null; \x0d\String cName=null; \x0d\String result=null; \x0d\BufferedReader input=new BufferedReader(new InputStreamReader(Systemin)); \x0d\try { \x0d\try { \x0d\ClassforName("sunjdbcodbcJdbcOdbcDriver"); //加载驱动 \x0d\}catch(ClassNotFoundException e){ \x0d\Systemoutprintln("Can not load Jdbc-Odbc Bridge Driver"); \x0d\Systemerrprint("ClassNotFoundException:"); \x0d\Systemerrprintln(egetMessage()); \x0d\} \x0d\Connection con=DriverManagergetConnection(url,"USER","PASSWORD"); //使用SQL-SERVER2000认证 \x0d\DatabaseMetaData dmd=congetMetaData(); //DMD为连接的相应情况 \x0d\Systemoutprintln("连接的数据库:"+dmdgetURL()); \x0d\Systemoutprintln("驱动程序:"+dmdgetDriverName()); \x0d\sm=concreateStatement(); \x0d\Systemoutprintln("输入表名"); \x0d\tableName=inputreadLine(); \x0d\while(true) { \x0d\Systemoutprintln("输入列名(为空时程序结束):"); \x0d\cName=inputreadLine(); \x0d\if(cNameequalsIgnoreCase("")) \x0d\break; \x0d\command="select "+cName+" from "+tableName; \x0d\rs=smexecuteQuery(command); //执行查询 \x0d\if(!rsnext()) \x0d\Systemoutprintln("表名或列名输入有误"); \x0d\else { \x0d\Systemoutprintln("查询结果为:"); \x0d\do \x0d\{ \x0d\result=rsgetString(cName); \x0d\//数据库语言设置为中文,不用转换编码 \x0d\//result=new String(resultgetBytes("ISO-8859-1"),"GB2312"); \x0d\Systemoutprintln(result); \x0d\}while(rsnext()); \x0d\} \x0d\} \x0d\}catch(SQLException ex) { \x0d\Systemoutprintln("SQLException:"); \x0d\while(ex!=null) { \x0d\Systemoutprintln("Message:"+exgetMessage()); \x0d\ex=exgetNextException(); \x0d\} \x0d\}catch(Exception e) { \x0d\Systemoutprintln("IOException"); \x0d\} \x0d\} \x0d\}

以上就是关于如何实现android访问oracle数据库全部的内容,包括:如何实现android访问oracle数据库、java访问数据库四种方法的对比、Java中如何实现与后台数据库的连接等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10189552.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存