Android SQLite增删查改基本操作
2017-05-18 08:34
204 查看
Android 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的常用方法
SQLiteOpenHelper 是一个抽象类,我们通常需要继承它,并且实现里面的3个函数:
1.onCreate(SQLiteDatabase)
在数据库第一次生成的时候会调用这个方法,也就是说,只有在创建数据库的时候才会调用,当然也有一些其它的情况,一般我们在这个方法里边生成数据库表。
2. onUpgrade(SQLiteDatabase,int,int)
当数据库需要升级的时候,Android系统会主动的调用这个方法。一般我们在这个方法里边删除数据表,并建立新的数据表,当然是否还需要做其他的操作,完全取决于应用的需求。
3. onOpen(SQLiteDatabase):
这是当打开数据库时的回调函数,一般在程序中不是很常使用。
一、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(); } }
相关文章推荐
- JAVA数据库基本操作,增删改查
- 数据库的基本操作——增删改查
- MongoDB 增删查改基本操作
- 数据库的基本操作(增删改查)
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- xml文件的增删改查之基本操作
- java操作mongodb:基本的增删改查
- git config命令使用第一篇——介绍,基本操作,增删改查
- JSP基本的增删改查操作--MySql(备忘)
- mongodb php增删改查基本操作
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- git config命令使用第一篇——介绍,基本操作,增删改查
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- asp.net mvc 2 简简单单做开发 通用增删改基本操作通用页面
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- django数据库基本操作增删改查
- Android sqlite 基本操作 详解
- oracle笔记——第二天:基本操作(增删改查)