




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Android学习笔记(21)利用JDBC连接服务器数据库分类:Android学习笔记2012-04-0716:5126740人阅读评论(68)收藏举报jdbcandroid服务器microsoftsqlserver/* author:conowen大钟* E-mail:conowen* site:* 深圳市动力思维科技发展有限公司* * 注:本文为原创,仅作为学习交流使用,转载请标明作者及出处。*/1、Android平台下与服务器数据库通信的方法在Android平台下,连接电脑服务器的MySQL、PostgreSQL、Oracle、Sybase、MicrosoftSQLServer等数据库管
2、理系统DBMS(databasemanagementsystem),主要有以下两种方法:方法1、直接连接在Android工程中引入JDBC驱动,直接连接。(本文主要介绍此种方法)方法2、间接连接在服务器上用PHP+DBMS做服务器端,PHP将DBMS中的数据用json或者xml进行封装。然后再发封装好的数据返回给Android平台。注意:采用JDBC方法主要问题是安全性不高,而且一旦要访问的数据量过多,容易出问题。另外,Android系统本身有对json或者xml直接解析的api,所以建议采用第二种方法,实用性与安全性都提高了。2、JDBC简介JDBC是JavaDataBaseConnecti
3、vity的缩写,意思为“jav故据库连接”,由一组用Java语言编写的类和接口组成,为java层直接操作关系型数据库提供了标准的API。原理很简单,主要是先服务器DBMS发送SQL(结构化查询语言)指令。实现各种数据库的操作。3、如何在Android中使用JDBC与服务器数据库通信在Android工程使用JDBC连接数据库的主要步骤如下:加载JDBC驱动程序建立连接发送SQL语句3.1、 加载JDBC驱动程序在Android工程中要使用JDBC的话,要导入JDBC的驱动。详细过程:在eclipse选择工程,右键-Properties-在左侧选项“JavaBuildPath-切换到“Librar
4、ies-选择AddExternalJARs-选中jtds的jar包-完毕typefiltertextResourceAndroidBuildersJavaBuildPathJavaCodeStyleJavaCompilerJavaEditorJavadocLocatiorProjectReferencRun/DebugSettTaskRepositoryTaskTagsValidationWikiTe)ctJavaBuildPathmSource已Projects&Libraries卜知OrderandExpoJARsandclassfoldersonthebuildpath:舟jtds-L2
5、Jar-E:IwAndroid231Iftcom.android.ide.ecJipse,adt.LIBRARIES然后在java代码的开始处importJDBC的包,这一步根据不同的驱动,目录可能不一样,找到Driver的路径即可。javaviewplaincopy1.importnet.sourceforge.jtds.jdbc.Driver;接下来在java代码中使用以下语句,加载jdbc驱动。javaviewplaincopy);加载驱动程序18. Class.forName(net.sourceforge.jtds.jdbc.Driver注意:ADT版本和android-sdk_To
6、ols最好为16,我试过版本20老是出现找不到驱动的问题。降级方法:离线安装ADT下载SDKTools添加下载任务下载完毕之后,安装到一个任意位置,然后把里面的文件和文件夹copy到之前的sdktools目录,覆盖新版本的。然后从eclipse里面打开AndroidSdkManager,然后在第一项的tools里面,再勾选AndroidSDKPlatform-tools就行了,记得不要勾选AndroidSDKTool。3.2、 建立连接每种DBMS的JDBC驱动是不一样的,同一个DBMS也会有几种JDBC驱动,如MicrosoftSQLServer的JDBC驱动主要有两种,Microsoft官
7、方提供的JDBC驱动和民间开源的JDBC驱动(JTDS),推荐JTDS,bug少,而且是完全开放源代码的。目前JTDS只能支持MicrosoftSQLServer和Sybase。由于DBMS与JDBC驱动的不同,所以每种JDBC连接数据库的字符串书写方法也是不一样的。下面给出几种常见的JDBC与DBMS建立连接的字符串书写格式,(本博文是JTDS连接msserver,所以是第5种)javaviewplaincopy1 /1.MySQL()mm.mysql-2.0.2-bin.jar2 Connectioncon=null;3 Class.forName(org.gjt.mm.mysql.Dri
8、ver);/加载驱动程序4 con=DriverManager.getConnection(jdbc:mysql:/DbComputerNameOrIPAddr:3306/DatabaseName,UserName,Password);567 /2.PostgreSQL()pgjdbc2.jar8 Connectioncon=null;9 Class.forName(org.postgresql.Driver);/加载驱动程序10 con=DriverManager.getConnection(jdbc:postgresql:/DbComp
9、uterNameOrIPAddr/DatabaseName,UserName,Password);1.2. /3.Oracle(3. Connectioncon=null;4. Class.forName(oracle.jdbc.driver.OracleDriver);/加载驱动程序5. con=DriverManager.getConnection(jdbc:oracle:thin:DbComputerNameOrIPAddr:1521:DatabaseName,UserName,Password);6.7.8. /4.Sybase()jconn2.jar9. Connectioncon=
10、null;10. Class.forName(com.sybase.jdbc2.jdbc.SybDriver);/加载驱动程序11. con=DriverManager.getConnection(jdbc:sybase:Tds:DbComputerNameOrIPAddr:2638/DatabaseName,UserName,Password);12. /(Default-Username/Password:dba/sql)13.14.15. /5.MicrosoftSQLServer()16. Connectioncon=null;17. Class.forName(net.sourcef
11、orge.jtds.jdbc.Driver);/加载驱动程序18. con=DriverManager.getConnection(jdbc:jtds:sqlserver:DbComputerNameOrIPAddr:1433/DatabaseName,UserName,Password);19.20.21. /6.MicrosoftSQLServer()22. Connectioncon=null;23. Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);/加载驱动程序24. con=DriverManager.getCo
12、nnection(jdbc:microsoft:sqlserver:DbComputerNameOrIPAddr:1433;databaseName=master,UserName,Password);3.3、 发送SQL语句当成功连接数据库之后,就可以发送操作数据库的语句并处理结果了。在发送SQL语句之前,首先要创建一个Statement对象,Statement主要工作是把SQL语句发送给DBMS。javaviewplaincopy/创建Statement52. Statementstmt=con.createStatement();然后发送SQL语句。对于SELECT操作,使用的是Stat
13、ement对象的executeQuery(sql)方法,对于一些创建table和修改table的操作,使用的是Statement对象的executeUpdate(sql)方法。如:javaviewplaincopy59. Stringsql=SELECT*FROMtable_test;查询表名为“table_test的所有内容60. Statementstmt=con.createStatement();/创建Statement61. ResultSetrs=stmt.executeQuery(sql);4、简单demo程序由于要联网,所以要在AndroidManifest.xml里面加入连接
14、网络的权限:htmlviewplaincopy完整的AndroidManifest.xml如下所示:htmlviewplaincopyactivityandroid:label=string/app_nameandroid:name=.Android_connect_sqlserverActivity/actionandroid:name=ent.action.MAINcategoryandroid:name=ent.category.LAUNCHER/application/连接到MicrosoftSQLServer,然后后台System.out.
15、println输出结果:结果图:)Applicatiori32com-conowen.sglservercoi.conower.sqlserveri2coin.,conowen.scjlseruer12com-conoweri-sqlEerverTagTextSystenISy5ren.outabcSyztenout2Syt.n.cutdefconowen1abc2,javaviewplaincopy/*author:conowen*date:2012.4.7*Android_connect_sqlserverActivity*/packagecom.conowen.sqlserver;imp
16、ortjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.Statement;importandroid.app.Activity;importandroid.database.SQLException;importandroid.os.Bundle;publicclassAndroid_connect_sqlserverActivityextendsActivity17./*Calledwhentheactivityisfirstcreated.*/18.Overri
17、de19.publicvoidonCreate(BundlesavedlnstanceState)20.super.onCreate(savedlnstanceState);21.setContentView(R.layout.main);22.StringUserName=test;/用户名23.StringPassword=test;/密码24.Connectioncon=null;25.26.try/加载驱动程序27.Class.forName(net.sourceforge.jtds.jdbc.Driver);28.con=DriverManager.getConnection(29.
18、jdbc:jtds:sqlserver::1433/testDB,UserName,30.31.32.System.out.println(加载驱动程序出错);33.catch(SQLExceptione)34.35.System.out.println(e.getMessage();catch(Exceptione)36.System.out.println(e.getMessage();37.38.Password);catch(ClassNotFoundExceptione)39.40.testConnection(con);/测试数据库连接try41.42.catch(java.sql.SQLExceptione)/TODOAuto-generatedcatchblock43.e.printStackTrace();
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农村合作种植合同范本
- 公司食堂阿姨劳务合同范本
- 保编合同范本
- 分包合同范本汇编
- 公司安全培训合同范本
- 中介工作合同正式合同范本
- 减速机模具合同范本
- 2025内蒙古建安发展投资集团有限公司招聘14人笔试参考题库附带答案详解
- 公摊电梯合同范例
- bot模式合作合同范本
- 公共厕所工程报价明细表
- 股骨颈骨折ppt精品
- 2023年江苏农牧科技职业学院单招职业适应性测试题库及答案解析
- 毛泽东诗词鉴赏分析
- 小学数学-纳税教学设计学情分析教材分析课后反思
- 量具检具清单
- 江苏市政工程计价表定额计算规则
- YY/T 1833.2-2022人工智能医疗器械质量要求和评价第2部分:数据集通用要求
- 自然辩证法概论之马克思主义自然观
- 我国新能源汽车充电桩行业发展痛点和方向,机械工程论文
- 苏科版初中物理实验目录
评论
0/150
提交评论