安卓系统的远程数据库MySql操作
开发系统:Android4.4.2 开发平台:广州微嵌安卓工业平板 开发工具:eclipse 开发语言:Java 使用的数据库:MySql 在日常的开发安卓程序中,很多时候都涉及到大量的数据管理,虽然安卓系统有自带的数据库sqlite,但sqlite是轻量级的,有时候满足不了使用的需求,这时候就需要连接远程的数据库进行对数据的管理,下面我们就来学习下在安卓上是如何连接远程数据库使用的,本次所使用的远程数据库是MySql,安装在电脑上面,通过网络连接MySql服务器,从而可以远程操作数据库。
在数据库操作中使用的一个类Connection:连接表示从Java应用程序到数据库的链接 1、添加数据库的驱动:在安卓上连接远程数据库需要先加载数据库驱动,不同的数据库的加载略有不同,这里以MySql为例,以下的所有操作都是针对MySql的.
try{ Class.forName("com.mysql.jdbc.Driver"); Toast.makeText(this, "数据库加载成功", Toast.LENGTH_LONG).show();}catch(ClassNotFoundException e){ Toast.makeText(this, "数据库加载失败\n"+e, Toast.LENGTH_LONG).show();}
添加mysql驱动说明:下载mysql的驱动文件”mysql-connector-java-5.0.8-bin.jar”,在项目根目录下新建文件夹lib,将mysql的驱动文件”mysql-connector-java-5.0.8-bin.jar”拷贝到lib下
2、连接远程数据库,在连接前先确保远程数据数据库允许其它连接
try{ String ip = sqlipedit.getText().toString(); /*远程服务器的ip跟端口号,使用账号、密码,不同的数据库使用的连接端口、命令都不同 mysql使用的连接命令:jdbc:mysql//192.168.1.xxx:3306 */ Connection con = DriverManager.getConnection("jdbc:mysql:"+"//192.168.1.64:3306", "admin","admin"); System.out.println("连接成功"); }catch(SQLException e){ e.printStackTrace(); System.out.println("失败");}
3、获取数据库服务器中已存在的所有数据库
使用的命令:show databases Statement statement = null; ResultSet result = null; try { //显示数据库命令 String sql = "show databases"; statement = (Statement) conn.createStatement(); //执行获取数据库的命令 result = statement.executeQuery(sql); //获取数据库的数量 int size = result.getRow(); //获取数据库的名字 while(result.next()){ Log.d("DatabaseName", result.getString(1)); } } catch (SQLException e) { e.printStackTrace(); } finally { try { if (result != null) { result.close(); result = null; } if (statement != null) { statement.close(); statement = null; } } catch (SQLException sqle) { } }
4、切换当前连接所使用的数据库:
try { if(!con.isClosed()){ //方法说明:设置此连接的目录名称,参数就是前面获取到的数据库的名字 con.setCatalog((String)databasename); } } catch (SQLException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); }
5、执行sql命令的方法有两种: 一、Statement.excuteQuery(String sqlcmd):不对数据库中的内容做修改,只用于查询 二、Statement.excuteUpdate()String sqlcmd)对数据库中的内容做修改,包括增删改等,将该操作封装成一个方法所有的操作可以直接使用
/*执行mysql的修改命令,包括增、删、改等命令 *参数:conn:连接数据库的链接,sql:数据库的操作命令 *返回值:为成功操作的数据个数,如:执行修改数据的命令后,有n条列的数据被成功修改,返回值就是n. */public int query_l(Connection conn, String sql) { int row = -1; if (conn == null) { return -1; } Statement statement = null; ResultSet result = null; try { statement = (Statement) conn.createStatement(); //该方法用于修改数据库内容的。 row = statement.executeUpdate(sql); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (result != null) { result.close(); result = null; } if (statement != null) { statement.close(); statement = null; } } catch (SQLException sqle) { } } return row; }
6、获取数据库下的所有数据表
//使用命令:show tables from databasename//使用该命令可以获取某一数据库下的所有数据表String sql = "show tables from databasename"; Statement statement = null; ResultSet result = null;try { statement =(Statement)con.createStatement(); result = statement.executeQuery(sql); while(result.next()){ Log.d("TableName",result.getString(1)); } } catch (SQLException e) { }
7、获取数据表下的所有字段跟数据
//获取字段跟字段类型,使用命令:select from tableString sql = "select * from " + tablename; String ss = ""; java.sql.PreparedStatement ps = con.prepareStatement(sql); ResultSet rs = ps.executeQuery(); java.sql.ResultSetMetaData meta = rs.getMetaData(); //字段数量int columeCount = meta.getColumnCount();int[] data = new int[columeCount]; //获取字段名跟字段类型for (int i = 1; i < columeCount + 1; i++) { data[i-1] = rs.findColumn(meta.getColumnName(i)); Log.d("字段名",meta.getColumnName(i)); Log.d("字段类型",meta.getColumnType(i)); } //根据字段名获取该字段的所有数据Statement statement = null; ResultSet result = null; System.out.println(sql); List list = new ArrayList();try { statement = (Statement) conn.createStatement(); result = statement.executeQuery(sql); if (result != null && result.first()) { while (!result.isAfterLast()) { String str = ""; //该处的data就是前面的data,一个for循环结束获取到的是一条完整的数据 for(int i:data){ //根据字段名获取相应的数据内容 str += result.getString(i)+"\t\t"; } result.next(); } } } catch (SQLException e) { e.printStackTrace(); }
8、新建数据库
使用命令:create database databasename String sql = "create database databasename";query_l(con,sql);
9、删除数据库
使用命令:drop database databasename String sql = "drop database databasename";query_l(con,sql);
10、删除数据库中的数据表
使用命令:drop table tablename String sql = "drop table tablename";query_l(con,sql);
11、新建数据表
使用命令:create table tablename(字段名1 字段类型, 字段名2 字段类型,字段名3...);String sql = "create table tablename(name char(20),sex int(4),number int(4))"; query_l(con,sql); //创建成功后该表中有三个字段:name、sex、number,字段类型分别是:char(20)、int(4)、int(4)
12、清空表中数据
使用命令:delete from tablename String sql = "delete from tablename";query_l(con,sql);
13、向表中插入数据
使用命令:insert into table value(name1 ,sex1, number1),(name2,sex2,number2),...该处插入数据应与数据表中的字段一一对应 String sql = “insert into tablename value('张三',1,1002),('李四',1,1003),('王五',0,1004)”; query_l(con,sql);
14、删除某一字段
使用的命令:alter table tablename drop 字段名 String sql = “alter table tablename drop sex”;query_l(con,sql); //执行完后该表中就没有sex的字段了
15、更改字段名跟类型
使用命令:alter table tablename change 字段名 新字段名 新字段类型 String sql = "alter table tablename change number age int(4)";query_l(con,sql); //执行完后该表中number字段就变成了age
16、重命名表
使用命令:rename table tablename to newtablename String sql = "rename table tablename to newtablename";query_l(con,sql); //执行完后就可将原表tablename重命名为newtablename
17、修改数据表中的数据
使用命令:update tablename set name='aaa' where num=1005命令说明:如果数据表中有数据num=1005,就将该列数据中的name修改成aaa String sql = "update tablename set name='aaa' where num=1005";query_l(con,sql); //如果使用的命令是:update tablename set name='aaa',表示将该表中所有列的数据中的name都设成aaa

提交
医疗垃圾回收系统工业平板电脑应用解决方案
怎么样使用QT开发安卓工业平板电脑程序
安卓设备的网络adb调试设置
安卓工控触摸一体机的蓝牙全面开发教程
组态王在WinCE工业平板电脑的安装使用