安卓系統的遠程數據庫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工業平板電腦的安裝使用

投訴建議