lobiner 关于android中的sqlite数据库操作

sqlite是Android自带的一种小型数据库,无需安装即可直接使用,方便有效。

那么我们怎么操作他呢?一般有两种方法,第一种是使用sql语句的方法。

代码如下:

首先要创建一个数据库,写一个Myhelper类继承SQLiteOpenHelper类:

public class MyHelper extends SQLiteOpenHelper {
// 构造 version数据版本,是从1开始
public MyHelper(Context context) {
super(context, "day02.db", null, 1);
}


// 创建时调用,----创建表格
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "create table user(id integer primary key autoincrement,userName text,userAge text)";
db.execSQL(sql);
}


// 数据库升级时调用
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 添加sex字段
db.execSQL("alter table user add column sex text");
}


}
然后是增删改查的方法:


// 点击事件
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.add:
// 增加
String name1 = name.getText().toString();
String age1 = age.getText().toString();
/**
* 1.打开数据库 2.放数据 3.关闭
*/
SQLiteDatabase database = myHelper.getReadableDatabase();
database.execSQL("insert into user(userName,userAge)values(?,?)",
new String[] { name1, age1 });
database.close();
break;
// 删除
case R.id.dele:
String name2 = name.getText().toString();
SQLiteDatabase database1 = myHelper.getReadableDatabase();
String dele_sql = "delete from user where userName=?";
database1.execSQL(dele_sql, new String[] { name2 });
database1.close();
break;
case R.id.modify:
// 修改
String name3 = name.getText().toString();
String age3 = age.getText().toString();
SQLiteDatabase database2 = myHelper.getReadableDatabase();
String modify_sql = "update user set userAge=? where userName=?";
database2.execSQL(modify_sql, new String[] { age3, name3 });
database2.close();
break;
// 查询数据,根据名字查询数据
case R.id.query:
String name4 = name.getText().toString();
SQLiteDatabase database3 = myHelper.getReadableDatabase();
String query_sql = "select * from user";// 全查
// database2.execSQL(modify_sql, new String[]{age3,name3});
Cursor cursor = database3.rawQuery(query_sql, null);
// 查看数据
if (cursor != null && cursor.getCount() > 0) {
// 取出数据
while (cursor.moveToNext()) {
// raw
// String age =
// cursor.getString(columnIndex);columnIndex字段的索引
String name = cursor.getString(cursor
.getColumnIndex("userName"));
String age = cursor.getString(cursor
.getColumnIndex("userAge"));// columnName字段的名字
System.out.println("name--" + name + "--age--" + age);
}
} else {
Toast.makeText(MainActivity.this, "无数据", 0).show();
}
database3.close();
break;
default:
break;
}

以上是用Sql语句来操作数据库的,还有一种是数据库自带的方法来操作数据库:

代码如下:

首先同样是创建一个数据库,上面已经有了,在这里不做重复,直接上操作方法:

@Override
public void onClick(View v) {
switch (v.getId()) {
// 增加数据
case R.id.add:
/**
* 打开数据库 放入数据 关闭数据库
*/
SQLiteDatabase database = myHelper.getReadableDatabase();


// database.insert(table,表名 nullColumnHack 开辟的字段, values插入的值);
// 取得名字和年龄
String name1 = name.getText().toString();
String age1 = age.getText().toString();
ContentValues values = new ContentValues();
// 放入values
values.put("userName", name1);
values.put("userAge", age1);
database.insert("user", null, values);
database.close();
break;
// 删除
case R.id.delete:
// 打开数据库
String name2 = name.getText().toString();
SQLiteDatabase database2 = myHelper.getWritableDatabase();
database2.delete("user", "userName=?", new String[] { name2 });
database2.close();
break;
// 修改
case R.id.modify:
String name3 = name.getText().toString();
String age3 = age.getText().toString();
SQLiteDatabase database3 = myHelper.getWritableDatabase();
ContentValues values2 = new ContentValues();
values2.put("userName", name3);
values2.put("userAge", age3);
database3.update("user", values2, "userName=?",
new String[] { name3 });
database3.close();
break;
// 查询
case R.id.query:
// 全查
String name4 = name.getText().toString();
SQLiteDatabase database4 = myHelper.getWritableDatabase();
// // database4.query(table表格, columns要查询的字段, selection,
// // 约束条件selectionArgs约束条件要传的值, groupBy,组 having,包含 orderBy,排序 limit,
// // 分页)
// Cursor cursor = database4.query("user", null, null, null, null, null, null);
// //遍历
// if (cursor!=null && cursor.getCount()>0) {
// while(cursor.moveToNext()){
// String name4 = cursor.getString(cursor.getColumnIndex("userName"));
// String age4 = cursor.getString(cursor.getColumnIndex("userAge"));
// System.out.println("name--"+name4+"--age--"+age4);
// }
// }
// cursor.close();
// database4.close();
//部分查询
Cursor cursor = database4.query("user", new String[]{"userAge"}, "userName=?", new String[]{name4}, null, null, null);
if (cursor!=null && cursor.getCount()>0) {
while(cursor.moveToNext()){
String age4 = cursor.getString(cursor.getColumnIndex("userAge"));
System.out.println("--age--"+age4);
}
}
cursor.close();
database4.close();
break;


default:
break;
}
}

你可能感兴趣的:(lobiner 关于android中的sqlite数据库操作)