android连接Mysql数据库之JDBC方式

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS SQL Server,基础系列 2核4GB
简介:

一.创建一个数据库和若干表,并导入相关信息.这里以我之前使用的一个图书系统的数据库为例子.

首先假设已经安装并配置好Mysql.(建议大家安装WAMP,也就是安装完这个,就相当于安装了Mysql,PHPAdimin,Apache这三个软件,以后采用php,apache搭建动态网站服务器的方式访问数据库时候需要用到这几个软件,以后会另外写一篇文章,在此不多说).

(一)进入Mysql Command Line Client客户端,创建一个名为"LibrarryDB"的数据库.

create database LibraryDB;

(二)赋予某某一个用户访问权限,以后通过这一个用户访问LibraryDB数据库.这个用户名为"user",登陆密码是"1234". localhost表示可以通过本地主机访问数据库LibraryDB.而@'%表示允许远程访问,即可以通过其他电脑或手机访问到你这个数据库.赋予用户权限后,flush privileges;相当于保存刷新.如果没有这一句,下次登陆会出现密码报错的情况.

grant all privileges on LibraryDB.*  to 'user'@localhost  IDENTIFIED  by '1234';

grant all privileges on LibraryDB.*  to 'user'@'%' IDENTIFIED  by '1234';

flush privileges;

(三)往数据库里面创建表,并插入相关的数据.

进入Mysql客户端,使用use LibraryDB进入LibraryDB数据库,插入下面的数据.可以一条一条地插入,但如果数据量太庞大的话,这样的方式就显昝太麻烦,这个时候,可以考虑将这些数据放在某一个txt文件里面,然后将txt格式改为sql脚本文件.如我的命名为:db.sql.

[sql] view plaincopyprint?

  1. create table book  
  2. (  
  3.   ISBN varchar(20) primary key,  
  4.   B_Name varchar(50),  
  5.   B_Author varchar(50),    
  6.   B_Publishment varchar(80),  
  7.   B_BuyTime varchar(50)  
  8. );  
  9. insert into book values('9787302164289','3ds max 9三维建模','程凤娟','清华大学出版社','2010-02-01');  
  10. insert into book values('9787121060953','photoshop cs3 图像处理','卓越科技','电子工业出版社','2003-02-01');  
  11. insert into book values('9787121102462','Java程序员职场全攻略-从小工到专家','吴亚峰','电子工业出版社','2004-04-05');  
  12. insert into book values('9787115227508','Android 2.0游戏开发实战宝典','吴亚峰','人民邮电出版社','2003-06-07');  
  13. insert into book values('9787030236630','PowerBuilder_10.5实用教程','樊金生','科学出版社','2005-07-05');  
  14. insert into book values('9787121079528','PowerBuilder 实用教程(第3版)','郑阿奇','电子工业出版社','2005-07-09');  
  15. insert into book values('9787302244158','大学计算机基础(21世纪普通高校计算机公共课程规划教材)','许薇,王东来 ','清华大学出版社','2005-0-09');  
  16. insert into book values('9787562324560','微型计算机原理及应用','吴荣光,吕钧星','华南理工大学出版社','2005-07-09');  
  17. insert into book values('9787111187776','算法导论','(美)科曼(Cormen,T.H.) 等著,潘金贵 等译','机械工业出版社','2005-07-09');  
  18.  
  19. create table student  
  20. (  
  21.  S_Num varchar(20) primary key,  
  22.  S_Name varchar(50),  
  23.  S_Age varchar(10),  
  24.  S_Sex varchar(50),  
  25.  S_Class varchar(50),  
  26.  S_Department varchar(50),  
  27.  S_Phone varchar(11),  
  28.  S_Permitted varchar(50),  
  29.  S_Pwd varchar(20)  
  30. );  
  31.  
  32. insert into student values('10001','李亚','20','女','计算机1班','计算机系','15176536034','是','001');  
  33. insert into student values('10002','王飞',21,'女','计算机1班','计算机系','13730220123','是','002');  
  34. insert into student values('10003','孙好',20,'男','计算机1班','计算机系','13633654578','是','003');  
  35. insert into student values('10004','何光',22,'男','计算机1班','计算机系','2578975','是','004');  
  36. insert into student values('10005','唐心',21,'女','计算机1班','计算机系','13936968956','是','005');  
  37. insert into student values('10006','宋理光',20,'男','计算机2班','计算机系','1234667','是','006');  
create table book
(
   ISBN varchar(20) primary key,
   B_Name varchar(50),
   B_Author varchar(50),   
   B_Publishment varchar(80),
   B_BuyTime varchar(50)
);
insert into book values('9787302164289','3ds max 9三维建模','程凤娟','清华大学出版社','2010-02-01');
insert into book values('9787121060953','photoshop cs3 图像处理','卓越科技','电子工业出版社','2003-02-01');
insert into book values('9787121102462','Java程序员职场全攻略-从小工到专家','吴亚峰','电子工业出版社','2004-04-05');
insert into book values('9787115227508','Android 2.0游戏开发实战宝典','吴亚峰','人民邮电出版社','2003-06-07');
insert into book values('9787030236630','PowerBuilder_10.5实用教程','樊金生','科学出版社','2005-07-05');
insert into book values('9787121079528','PowerBuilder 实用教程(第3版)','郑阿奇','电子工业出版社','2005-07-09');
insert into book values('9787302244158','大学计算机基础(21世纪普通高校计算机公共课程规划教材)','许薇,王东来 ','清华大学出版社','2005-0-09');
insert into book values('9787562324560','微型计算机原理及应用','吴荣光,吕钧星','华南理工大学出版社','2005-07-09');
insert into book values('9787111187776','算法导论','(美)科曼(Cormen,T.H.) 等著,潘金贵 等译','机械工业出版社','2005-07-09');

create table student
(
  S_Num varchar(20) primary key,
  S_Name varchar(50),
  S_Age varchar(10),
  S_Sex varchar(50),
  S_Class varchar(50),
  S_Department varchar(50),
  S_Phone varchar(11),
  S_Permitted varchar(50),
  S_Pwd varchar(20)
);

insert into student values('10001','李亚','20','女','计算机1班','计算机系','15176536034','是','001');
insert into student values('10002','王飞',21,'女','计算机1班','计算机系','13730220123','是','002');
insert into student values('10003','孙好',20,'男','计算机1班','计算机系','13633654578','是','003');
insert into student values('10004','何光',22,'男','计算机1班','计算机系','2578975','是','004');
insert into student values('10005','唐心',21,'女','计算机1班','计算机系','13936968956','是','005');
insert into student values('10006','宋理光',20,'男','计算机2班','计算机系','1234667','是','006');



然后通过Mysql命令,将这份db.sql脚本文件导入到你的数据库当中.假设我的db.sql放在D盘.如图:

\. d:\db.sql;

 

二. 导入外部JAR包.

需要说明的是,JAVA虽然提供对JDBC的支持,但是,JAVA JDK里面并不包含JDBC API,因此,若想使用JDBC连接操作数据库,需要我们从外部导入一个JDBC的JAR包.这个JAR包,可以到官网 去下载,如我下载的是:mysql-connector-java-5.0.8.tar.gz.将下载下来的文件解压,放到电脑某个盘上.如:d:\Mysql.新建一个JAVA或Android工程.

选择工程-->右键 Build Path-->选择Java Build Path-->点击 Add External JARS-->选择下载的的jar包--->打开,确定.

 

到此,JDBC的jar包就导入到你的工程里面去了.

 

三. JDBC连接并操作数据库

Java语言提供了对采用JDBC访问并操作数据库的支持.由于android是采用Java语言编写的,自然而然地,也就继承了这一功能的支持.

JDBC API 工作的4个重要的环节:

1.       DriverManager类:依据数据库的不同管理jdbc驱动

2.       Connection接口:负责连接数据库并担任传送数据的任务。

3.       Statement 接口:友Connection产生,负责执行sql语句。

4.       ResultSet接口:负责保存Statement执行后所产生的查询结果。

 

不管是java,还是android,其通过JDBC访问数据库的基本步骤都是一样的.

(一)加载JDBC驱动程序,并连接数据库.JDBC对于不同的数据库的连接方法略有不同.具体如下所示.//连接URL为   jdbc:mysql//服务器地址/数据库名  ,后面的2个参数分别是登陆用户名和密码

      1、DB2

  Class.forName("Com.ibm.db2.jdbc.net.DB2Driver");

  String url="jdbc:db2://dburl:port/DBname"

  cn = DriverManager.getConnection( url, userName, password );

  2、Microsoft SQLServer(microsoft)

  Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver" );

  cn = DriverManager.getConnection( "jdbc:microsoft:sqlserver://DBServerIP:1433;databaseName=master", userName, password );

  3、Sybase(jconn2.jar)

  Class.forName( "com.sybase.jdbc2.jdbc.SybDriver" );

  cn = DriverManager.getConnection( "jdbc:sybase:Tds:DBServerIP:2638", userName, password);

  4、MySQL(mm.mysql-3.0.2-bin.jar)

  Class.forName("com.mysql.jdbc.Driver");    

  cn = DriverManager.getConnection( "jdbc:mysql://DBServerIP:3306/myDatabaseName", userName, password );

  5、PostgreSQL(pgjdbc2.jar)

  Class.forName( "org.postgresql.Driver" );

  cn = DriverManager.getConnection( "jdbc:postgresql://DBServerIP/myDatabaseName", userName, password );

  6、Oracle(classes12.jar)

  Class.forName( "oracle.jdbc.driver.OracleDriver" );

  cn = DriverManager.getConnection( "jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", userName, password );

  7、ODBC

  Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );

  Connection cn = DriverManager.getConnection( "jdbc:odbc:" + sDsn, userName, password );

   由于我的电脑安装的是Mysql,主机IP为"192.168.137.1",数据库端口是默认的3306.故,连接到Mysql的程序为:

   Class.forName("com.mysql.jdbc.Driver");     //加载MYSQL JDBC驱动程序  
    Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://192.168.137.1:3306/LibraryDB","user","1234");
             

(二). 对数据库进行增,删,改,查.

(1)       ResultSet executeQuery (String sql) :可以进行色sql查询并获取到ResultSet对象。

    String sql="select B_Name from book"; //具体视你的查询要求而定

    Statement st=(Statement) con.createStatement();
     ResultSet rs=st.executeQuery(sql);
     while(rs.next())
     {
          //进行你想要的查询.

         rs.getString("B_Name");

    }

 

(2)int executeUpdate(String sql ):可以执行插入删除更新等操作,返回值是执行操作返回的受影响函数。

    String sql="drop table student";    

    Statement st=(Statement) con.createStatement();
     ResultSet rs=st.executeUpdate(sql);

(3) boolean execute (String sql) :可以执行任意sql语返回一个布尔值,表示是否返回ResultSet

 

(三)关闭数据库

    rs.close();
     st.close();
     con.close();

 

四. 下面,,根据以上的方法,进行android JDBC连接数据库的演示.用户可以输入SQL查询命令,然后点击"查询数据库"按键的时候,会将查询结果显示在下面的TextView上.

如下面的截图所示.

 

由于上面已经介绍地很详尽了,所以在此就不再给出工程代码了.如果想要完整的程序代码可到以下地下下载.


CSDN下载: androidMySqlTest源码

最后说一声,采用JDBC的方式虽然可以访问数据库,但是,这样的方式不是很安全,因为,你必须把服务器那边的数据库的用户名,密码,甚至IP地址都写到代码里面去,这样的话,要是别人对你的apk进行反编译,那么,这些数据库用户名,密码便显露无遗.容易被别人用来恶意破坏你的数据库.因此,并不建议用这样的方式

对于数据库的访问,比较安全而普遍的方法,但是在你的电脑上搭建一个动态网页服务器(apache php mysql),然后android程序通过网页去访问你的数据库,如果需要传输数据,可用PHP 将数据打包成JSON包,然后,另一方接收JSON包,对其进行解析,得到相应数据.

  这里就不再介绍了.以后用到的时候,会另写一篇文章来重点介绍.

 分类: Android


 本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/p/3236937.html,如需转载请自行联系原作者


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
29天前
|
安全 Java 数据库连接
gbase8a JDBC常用特性-Kerberos认证方式连接
JDBC常用特性-Kerberos认证方式连接
|
30天前
|
Java 数据库连接 网络安全
JDBC常用特性-SSH隧道连接
JDBC常用特性-SSH隧道连接
|
2月前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
137 68
|
2月前
|
关系型数据库 MySQL 网络安全
DBeaver连接MySQL提示Access denied for user ‘‘@‘ip‘ (using password: YES)
“Access denied for user ''@'ip' (using password: YES)”错误通常与MySQL用户权限配置或网络设置有关。通过检查并正确配置用户名和密码、用户权限、MySQL配置文件及防火墙设置,可以有效解决此问题。希望本文能帮助您成功连接MySQL数据库。
126 4
|
2月前
|
数据库 C# 开发者
ADO.NET连接到南大通用GBase 8s数据库
ADO.NET连接到南大通用GBase 8s数据库
|
2月前
|
数据库连接 Linux Shell
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
|
2月前
|
安全 关系型数据库 MySQL
【赵渝强老师】MySQL的连接方式
本文介绍了MySQL数据库服务器启动后的三种连接方式:本地连接、远程连接和安全连接。详细步骤包括使用root用户登录、修改密码、创建新用户、授权及配置SSL等。并附有视频讲解,帮助读者更好地理解和操作。
274 1
|
2月前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
66 3
|
3月前
|
关系型数据库 MySQL 数据库连接
DBeaver如何连接一个数据库
【10月更文挑战第27天】DBeaver 是一款功能强大的通用数据库管理工具,支持多种主流数据库。本文介绍了使用 DBeaver 连接数据库的基本步骤,包括下载安装、创建新连接、选择数据库类型、配置连接参数、测试连接以及最终连接到数据库。详细的操作指南帮助用户轻松管理和操作数据库。
611 9
|
2月前
|
JSON JavaScript 关系型数据库
node.js连接GBase 8a 数据库 并进行查询代码示例
node.js连接GBase 8a 数据库 并进行查询代码示例
下一篇
开通oss服务