本篇简单介绍Android链接Mysql数据库的方式及其操作步骤。

1.1 将JDBC jar包导入项目libs中。

2.2 在AndroidManifest.xml配置权限,允许程序打开网络套接字

3.3 创建一个mysql操作集合的类,包括我们常用到的数据库连接、数据库查询、数据库修改(增、删、改)

/**

* @author chenjy

* @summary connection to mysql

* @param url 数据库url

* @param user 数据库用户名

* @param password 数据库密码

* @return Connection

*/

public static Connection connectionToMysql(String url,String user ,String password){

Connection con = null;

try {

final String DRIVER_NAME = "com.mysql.jdbc.Driver";

Class.forName(DRIVER_NAME);

con = DriverManager.getConnection(url, user, password);

if(!con.isClosed())

{

System.out.println("数据库连接成功");

}

} catch (ClassNotFoundException e) {

con = null;

System.out.println("加载驱动程序出错");

} catch (java.sql.SQLException e) {

con = null;

System.out.println(e.getMessage());

}catch (Exception e) {

System.out.println(e.getMessage());

}

return con;

}

/**

* @author chenjy

* @summary select from mysql

* @param con 数据库连接

* @param sql 数据库用户名

* @return String

*/

public static String query(Connection con, String sql) throws SQLException, JSONException {

Statement statement = null;

ResultSet result = null;

if (con == null) {

return resultSetToJson(result);

}

try {

statement = con.createStatement();

result = statement.executeQuery(sql);

return resultSetToJson(result);

} catch (SQLException e) {

e.printStackTrace();

return resultSetToJson(result);

} catch (JSONException e) {

e.printStackTrace();

} finally {

try {

if (result != null) {

result.close();

result = null;

}

if (statement != null) {

statement.close();

statement = null;

}

} catch (SQLException sqle) {

}

}

return sql;

}

/**

* @author chenjy

* @summary add,delete,update from mysql

* @param con 数据库连接

* @param sql 数据库用户名

* @return Boolean

*/

public static boolean execSQL(Connection con, String sql) {

boolean execResult = false;

if (con == null) {

return execResult;

}

Statement statement = null;

try {

statement = con.createStatement();

if (statement != null) {

execResult = statement.execute(sql);

}

} catch (SQLException e) {

execResult = false;

}

return execResult;

}

/**

* @author chenjy

* @summary ResultSet to JSON string

* @param rs 结果集

* @return String

*/

public static String resultSetToJson(ResultSet rs) throws SQLException,JSONException

{

JSONArray array = new JSONArray();

ResultSetMetaData metaData = rs.getMetaData();

int columnCount = metaData.getColumnCount();

while (rs.next()) {

JSONObject jsonObj = new JSONObject();

for (int i = 1; i <= columnCount; i++) {

String columnName =metaData.getColumnLabel(i);

String value = rs.getString(columnName);

jsonObj.put(columnName, value);

}

array.put(jsonObj);

}

return array.toString();

}

4.4 连接数据库

Android4.0 以后网络任务就不能在主线程,所以创建一个线程来连接数据库并且再创建一个线程来执行相关操作。

这里的con就是获取到的数据库连接。

private static final String URL = "jdbc:mysql://192.168.0.1:3306/DBName";

private static final String USER = "root";

private static final String PASSWORD = "root";

private static Connection con = null;

private Handler conHandler = new Handler() {

@Override

public void handleMessage(Message msg) {

con = (Connection) msg.obj;

};

};

public void connectionToMysql(){

new Thread(new Runnable(){

@Override

public void run() {

Message msg = Message.obtain();

Connection conn = MysqlUtils.connectionToMysql(URL, USER, PASSWORD);

msg.obj = conn;

conHandler.sendMessage(msg);

}

}).start();

}

5.5 从数据库获取数据。

private static String resultSet;

private Handler dataHandler = new Handler() {

@Override

public void handleMessage(Message msg) {

resultSet = msg.obj.toString().trim();

};

};

public void getDataFromMysql(final Connection con){

if(con == null)return;

new Thread(new Runnable(){

@Override

public void run() {

try {

Message msg = Message.obtain();

msg.obj = MysqlUtils.query(con, "select * from config_rfid ");

System.out.println(msg.obj);

dataHandler.sendMessage(msg);

} catch (SQLException e) {

e.printStackTrace();

} catch (JSONException e) {

e.printStackTrace();

}

}

}).start();

}

安卓mysql类库_Android 链接mysql数据库相关推荐

  1. Mysql —— C语言链接mysql数据库,实现可以增删改查的角色权限登录系统

    /******************************************************************** * 标题:C语言链接mysql数据库,实现可以增删改查的角色 ...

  2. php连接mysql原生_php链接mysql原生写法

    php链接mysql原生写法 龙行    MySql    2018-11-9    2295    0评论 好久没用都忘了,网上找了个不用框架的原生写法,做个记录水水更健康 $mysql_conf ...

  3. java连接mysql乱码_java链接mysql 中文乱码

    {转!} 背景: 由于最近在开发一个APP的后台程序,需要Java连接远程的MySQL数据库进行数据的更新和查询操作,并且插入的数据里有中文,在插入到数据库后发现中文都是乱码.网上查了很多教程,最后都 ...

  4. Mysql —— C语言链接mysql数据库,命令行形式(getopt()函数),用户、用户组增删改查(用户组表内有用户控制的策略字段)

    函数说明--getopt(): 函数说明 getopt()用来分析命令行参数.参数argc和argv分别代表参数个数和内容,跟main()函数的命令行参数是一样的. optstring中的指定的内容的 ...

  5. Mysql —— C语言链接mysql数据库,用户 角色 权限(用户根据角色的不同拥有增删改查的权限、用户有三种认证方式)

    db_修改过(用户 角色 权限): 1.新增用户时候id 改为最大id值加一,之前用的select查看出来的记录数加一,删除后再增加会出错: 2.删除用户时候,若该用户创建过其他用户(不能改此用户名. ...

  6. sqllite事务和MySQL事务_Android学习---SQLite数据库的增删改查和事务(transaction)调用...

    上一篇文章中介绍了手工拼写sql语句进行数据库的CRUD操作,本文将介绍调用sqlite内置的方法实现CRUD操作,其实质也是通过拼写sql语句. 首先,创建一个新的android项目: 其次,查看代 ...

  7. mysql所有班级名称和人数_mysql数据库优化课程---12、mysql嵌套和链接查询(查询user表中存在的所有班级的信息?)...

    mysql数据库优化课程---12.mysql嵌套和链接查询(查询user表中存在的所有班级的信息?) 一.总结 一句话总结: in:distinct:select * from class wher ...

  8. java查询mysql装载bean_jsp与javabean链接mysql数据库并查询数据表的简单实例源码

    jsp与javabean链接mysql数据库并查询数据表的简单实例源码.这个简单的实例是给新手学习的,或者一些高手临时忘记怎么使用jsp操作mysql数据库时候查找的,包括了建立mysql数据库连接的 ...

  9. 【问题收录】ubuntu下weka链接mysql数据库

    准备工作 1.首先下载weka,相关的链接是http://www.cs.waikato.ac.nz/ml/weka/downloading.html 之后解压 使用 unzip weka***.zip ...

最新文章

  1. Delphi 关键字详解
  2. 【Python 自然语言处理 第二版】读书笔记1:语言处理与Python
  3. build.gradle里dependencies标签页的实现原理
  4. [BZOJ2017][Usaco2009 Nov]硬币游戏
  5. 华尔街宫斗戏升温:银行巨头和纽交所争夺交易数据所有权
  6. MySQL中distinct和group by性能比较
  7. Linux Service管理
  8. thinkphp group count连用
  9. isv支付宝小程序三方模板开发快速指南
  10. Keil 5模块化编程详细步骤
  11. Tensorflow 笔记 Ⅳ——mnist手写数字识别
  12. 多大计算机科学世界排名,重磅!2021年QS世界大学学科排名发布!多大、UBC抢眼!这些专业最强!...
  13. ​LeetCode刷题实战518:零钱兑换 II
  14. 给ImageView做圆角处理
  15. 利用JAVA流处理-统计男员工人数;找出所有薪资大于 5000 元的女员工;找出大于平均年龄的员工
  16. 移植FreeRTOS时Undefined symbol vApplicationTickHook referred from tasks.o
  17. Flutter isolate应用
  18. 蛋白组笔记之-实践2 人溶菌酶蛋白二级结构的分析
  19. maps-api-v3_Google Maps API的自适应设计,视网膜图像和调试
  20. Bellman_Ford模版

热门文章

  1. java界面怎么加图片不显示不出来_Java登录界面中添加背景图片,程序无错,但加载不了图片,求帮忙...
  2. git 如何删除缓存的远程分支列表
  3. python测试rabbitmq简易实例
  4. Codeforces Round #121 (Div. 1) A. Dynasty Puzzles DP
  5. CodeForces - 556C Case of Matryoshkas
  6. [LeetCode]Subsets II生成组合序列
  7. oracle函数listagg的使用说明(分组后连接字段)
  8. [原]批量生成AWR报告
  9. server端多个文件的压缩 .NET
  10. Entity Framework 与 面向对象