100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 安卓获取mysql数据封装方法_数据库:安卓封装的原生api

安卓获取mysql数据封装方法_数据库:安卓封装的原生api

时间:2023-11-24 22:59:41

相关推荐

安卓获取mysql数据封装方法_数据库:安卓封装的原生api

1.数据库的管理类

package com.biyu6.creatdb;

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

public class MyOpenHelper extends SQLiteOpenHelper {

/**

* context:上下文

* name:数据库名字

* factory:目的是创建游标(游动光标)对象,默认用null

* version:数据库版本,从1开始递增,不能减

* */

public MyOpenHelper(Context context) {

super(context, "i01.db", null, 1);

}

@Override

public void onCreate(SQLiteDatabase db) {//数据库第一次创建的时候调用

/**适合初始化表结构,用sql语句创建表

* 示例:创建一个两列的表,第一列为id,第二列为name

* id 一般以下划线开头“_id”

* interger 是数据类型

* primary key 指定id为主键

* autoincrement 自增长

* varchar(20) name不超过20个字符

* 注意:sqlite底层都将类型转化为string类型,但为了严谨,这里还是指定类型

*/

// db.execSQL("create table info(_id integer primary key autoincrement,name varchar(20))");

//初始化一个三列的表

db.execSQL("create table info(_id integer primary key autoincrement,name varchar(20),phone varchar(20))");

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {//当数据库版本升级时调用

/**适合更新表结构

* 示例:给表增加一列phone

* varchar(20) phone 不超过20个字符

* */

db.execSQL("alter table info add phone varchar(20)");

System.out.println("新版本数据库:"+newVersion+"旧版本:"+oldVersion);

}

}

2.增删改查操作

public class MainActivity extends Activity {

private MyOpenHelper myOpenHelper;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

myOpenHelper = new MyOpenHelper(getApplicationContext());

// //打开一个数据库(如果不存在就创建)

// SQLiteDatabase writableDatabase = myOpenHelper.getWritableDatabase();

// //打开一个数据库(如果不存在就创建),跟上面的区别是,如果磁盘满了,返回一个只读的数据库

SQLiteDatabase readableDatabase = myOpenHelper.getReadableDatabase();

//

}

public void click1(View v) {//点击按钮增加一条记录

//获取数据库对象

SQLiteDatabase db = myOpenHelper.getWritableDatabase();

//要增加的列及其对应的值

ContentValues values = new ContentValues();

values.put("name", "李思思");

values.put("phone", "13811112222");

/**执行增加一条的sql语句

* table 表名

* values 是一个map(key为列的名字,value是这一列的值)

* 返回值为 插入新行的id

* */

long insert = db.insert("info", null, values);

if (insert > 0) {

Toast.makeText(getApplicationContext(), "添加成功",1).show();

}else {

Toast.makeText(getApplicationContext(), "添加失败",1).show();

}

//数据库用完需要关闭

db.close();

}

public void click2(View v) {//删除一条记录

//获取数据库对象

SQLiteDatabase db = myOpenHelper.getWritableDatabase();

/**执行删除一条的sql语句

* whereClause 删除的条件

* whereArgs 删除的数据值

* 返回值 表示删除的行数

* */

int delete = db.delete("info", "name=?", new String[]{"李思思"});

Toast.makeText(getApplicationContext(), "删除了"+delete+"行",1).show();

//数据库用完需要关闭

db.close();

}

public void click3(View v) {//修改一条记录

//获取数据库对象

SQLiteDatabase db = myOpenHelper.getWritableDatabase();

//要更新的列及其对应的值

ContentValues values = new ContentValues();

values.put("phone", "15566668888");

/**执行修改一条的sql语句

* 返回值代表更新的行数

* */

int update = db.update("info", values, "name=?", new String[]{"李思思"});

Toast.makeText(getApplicationContext(), "更新了"+update+"行",1).show();

//数据库用完需要关闭

db.close();

}

public void click4(View v) {//查询一条记录

//获取数据库对象

SQLiteDatabase db = myOpenHelper.getWritableDatabase();

/**执行查询一条的sql语句

* columns 要查询的列 查询所有的列就写null,数组中填你查的列名

* selection 查询的条件

* selectionArgs 要查询的条件的值

* groupBy 是否分组 null不分组

* having 过滤条件

* orderBy 是否排序 null不排序

*

* 返回结果集

* */

Cursor cursor = db.query("info", new String[]{"phone"}, "name=?", new String[]{"李思思"}, null, null, null);

if (cursor!=null && cursor.getCount()>0) {//查询结果不为空,且个数大于0

while (cursor.moveToNext()) {//循环,每次都取下一个,取不到则结束

//取值,参数为列的索引,如果只查phone这一列,那么phone的索引就是0

String phone = cursor.getString(0);

System.out.println("phone:"+phone);

}

}

//数据库用完需要关闭

db.close();

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。