您的位置:首页 > 移动开发 > Android开发

Android SQLite增删查改基本操作

2017-05-18 08:34 204 查看
Android SQLite增删查改基本操作

一、SQLite数据类型

一般数据采用的固定的静态数据类型,而SQLite采用的是动态数据类型,会根据存入值自动判断。SQLite具有以下常用的数据类型:

NULL: 这个值为空值

VARCHAR(n):长度不固定且其最大长度为 n 的字串,n不能超过 4000。

CHAR(n):长度固定为n的字串,n不能超过 254。

INTEGER: 值被标识为整数,依据值的大小可以依次被存储为1,2,3,4,5,6,7,8.

REAL: 所有值都是浮动的数值,被存储为8字节的IEEE浮动标记序号.

TEXT: 值为文本字符串,使用数据库编码存储(TUTF-8, UTF-16BE or UTF-16-LE).

BLOB: 值是BLOB数据块,以输入的数据格式进行存储。如何输入就如何存储,不改  变格式。

DATA :包含了 年份、月份、日期。

TIME: 包含了 小时、分钟、秒。

二、SQLiteDataBase介绍:

Android提供了创建和是用SQLite数据库的API。SQLiteDatabase代表一个数据库对象,提供了操作数据库的一些方法。在Android的SDK目录下有sqlite3工具,我们可以利用它创建数据库、创建表和执行一些SQL语句。下面是SQLiteDatabase的常用方法。 

SQLiteDatabase的常用方法 

[align=left]方法名称[/align]
[align=left]方法表示含义[/align]
[align=left]openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory  factory)[/align]
[align=left]打开或创建数据库[/align]
[align=left]insert(String table,String nullColumnHack,ContentValues  values)[/align]
[align=left]插入一条记录[/align]
[align=left]delete(String table,String whereClause,String[]  whereArgs)[/align]
[align=left]删除一条记录[/align]
query(String table,String[] columns,String selection,String[]  selectionArgs,String
groupBy,String having,String  orderBy)
[align=left]查询一条记录[/align]
[align=left]update(String table,ContentValues values,String whereClause,String[]  whereArgs)[/align]
[align=left]修改记录[/align]
[align=left]execSQL(String sql)[/align]
[align=left]执行一条SQL语句[/align]
[align=left]close()[/align]
[align=left]关闭数据库[/align]

三、SQLiteOpenHelper介绍

该类是SQLiteDatabase一个辅助类。这个类主要生成一个数据库,并对数据库的版本进行管理。当在程序当中调用这个类的方法getWritableDatabase()或者 getReadableDatabase()方法的时候,如果当时没有数据,那么Android系统就会自动生成一个数据库。
SQLiteOpenHelper 是一个抽象类,我们通常需要继承它,并且实现里面的3个函数:

1.onCreate(SQLiteDatabase)
在数据库第一次生成的时候会调用这个方法,也就是说,只有在创建数据库的时候才会调用,当然也有一些其它的情况,一般我们在这个方法里边生成数据库表。

2.  onUpgrade(SQLiteDatabase,int,int) 
当数据库需要升级的时候,Android系统会主动的调用这个方法。一般我们在这个方法里边删除数据表,并建立新的数据表,当然是否还需要做其他的操作,完全取决于应用的需求。

3.  onOpen(SQLiteDatabase):
这是当打开数据库时的回调函数,一般在程序中不是很常使用。

四、自定义SQLiteOpenHelper:

public class MyDBHelper extends SQLiteOpenHelper{

public MyDBHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
}

@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String sql = "create table stu_db(id int, sname varchar(20), sage int, ssex varchar(10))";
db.execSQL(sql);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
System.out.println("onUpgrade");
}

}


五、调用方法:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

public void dbOnCreate() {
MyDBHelper dbHelper = new MyDBHelper(MainActivity.this, "stu_db", null,
1);
SQLiteDatabase db = dbHelper.getReadableDatabase();
}

public void dbOnUpGrade() {
MyDBHelper dbHelper = new MyDBHelper(MainActivity.this, "stu_db", null,
2);
SQLiteDatabase db = dbHelper.getReadableDatabase();
}

public void dbOnInsert() {
MyDBHelper dbHelper = new MyDBHelper(MainActivity.this, "stu_db", null,
1);
SQLiteDatabase db = dbHelper.getWritableDatabase();

ContentValues values = new ContentValues();
values.put("id", 1);
values.put("name", "xiaoming");
values.put("age", 10);

db.insert("stu_db", null, values);
db.close();
}

public void dbOnDelete() {
MyDBHelper dbHelper = new MyDBHelper(MainActivity.this, "stu_db", null,
1);
SQLiteDatabase db = dbHelper.getReadableDatabase();
String whereClause = "id=?";
String[] whereArgs = { String.valueOf(1) };

db.delete("stu_db", whereClause, whereArgs);
db.close();
}

public void dbOnQuery() {
MyDBHelper dbHelper = new MyDBHelper(MainActivity.this, "stu_db", null,
1);
SQLiteDatabase db = dbHelper.getReadableDatabase();

Cursor cursor = db.query("stu_db",
new String[] { "id", "name", "age" }, "id=?",
new String[] { "1" }, null, null, null);

while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex("name"));
String age = cursor.getString(cursor.getColumnIndex("age"));
System.out.println("name = " + name + "age = " + age);
}
db.close();
}

public void dbOnUpdate() {
MyDBHelper dbHelper = new MyDBHelper(MainActivity.this, "stu_db", null,
1);
SQLiteDatabase db = dbHelper.getWritableDatabase();

ContentValues values = new ContentValues();
values.put("age", 100);
String whereClause = "id=?";
String[] whereArgs = { String.valueOf(1) };

db.update("stu_db", values, whereClause, whereArgs);
db.close();

}
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: