Android 开发应用SQLite数据库的简单使用(三)

安卓数据存储除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据。


1.建表;

private SQLiteDatabase db;
db=SQLiteDatabase.openOrCreateDatabase(getFilesDir()+"/gg.db",null);
String sql="create table tbl_user3(_id integer primary key autoincrement,name,passwd)";
db.execSQL(sql);


2.增加数据

 * 第一个参数:表的名字
		 * 第二个参数:字段的值永远为空值,一般为null
		 * 第三个参数:ContentValues对象
		ContentValues values=new ContentValues();
		values.put("name","这是名字3333");
		values.put("passwd","这是个密码");
		db.insert("tbl_user3",null, values);

3.查询数据

		 * 第一个参数:是否去除重复的值
		 * 第二个参数:表的名字
		 * 第三个参数:要查询的字段名 ,类似于select id,name....
		 * 第四个参数:查询条件  类似于 name=?
		 * 第五个参数:占位符的值
		 * 第六个参数:分组查询
		 * 第七个参数:组函数的过滤条件
		 * 第八个参数:按照指定的顺序显示数据   _id desc 降序  asc 升序
		 * 第九个参数:分页处理   "5,10"
		Cursor cursor = db.query(false,"tbl_user3",new String[]{"name","passwd"},"_id=?",new String[]{"1"},null,null,"_id asc",null);
		while(cursor.moveToNext()){
		//	int id=cursor.getInt(cursor.getColumnIndex("_id"));
			String name=cursor.getString(cursor.getColumnIndex("name"));
			String passwd=cursor.getString(cursor.getColumnIndex("passwd"));
			Log.i("Fourth2Activiy",name+":"+passwd);}


4.更新数据

* 第一个参数:表的名字
		 * 第二个参数:ContentValues的值
		 * 第三个参数:查询条件
		 * 第四个参数:占位符的值
		ContentValues values=new ContentValues();
		values.put("name","briup2");
		values.put("passwd","456");
		db.update("tbl_user2", values,"_id=?",new String[]{"1"});


5.删除表

db.delete("tbl_user2","_id=?",new String[]{"1"});

6. 小结:

嵌入式关系型SQLite数据库存储数库

除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据。
在Android平台上,集成了一个嵌入式关系型数据库—SQLite,
1、SQLite3支持 NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型虽然只有五种,但实际上sqlite3也接受varchar(n)、char(n)、decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型。
2、SQLite最大的特点是你可以保存任何类型的数据到任何字段中,无论这列声明的数据类型是什么。例如:可以在Integer字段中存放字符串,或者在布尔型字段中存放浮点数,或者在字符型字段中存放日期型值。
3、但有一种情况例外:定义为INTEGERPRIMARY KEY的字段只能存储64位整数,当向这种字段中保存除整数以外的数据时,将会产生错误。
4、另外, SQLite 在解析CREATETABLE 语句时,会忽略 CREATE TABLE 语句中跟在字段名后面的数据类型信息,如下面语句会忽略 name字段的类型信息:
查表的可视化工具 http://download.csdn.net/detail/qq_33599978/9726934


代码小案例:
package com.briup.androiddatasave;


import com.briup.utils.ToastUtil;


import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
/**
 * 使用Androdi的API完成Sqlite数据库的增删改查
 * @author cll
 *
 */
public class MainActivity extends Activity {
	private SQLiteDatabase db;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_fourth2);
		
		db=SQLiteDatabase.openOrCreateDatabase(getFilesDir()+"/gg.db",null);
		String sql="create table tbl_user3(_id integer primary key autoincrement,name,passwd)";
		db.execSQL(sql);
		 
		ToastUtil.showToast(this,"建表成功");
		//添加数据
		addData();
		ToastUtil.showToast(this,"插入数据成功");
		//查询数据
	queryData();
		ToastUtil.showToast(this,"查询数据成功");
		//修改数据
		updateData();
		ToastUtil.showToast(this,"修改数据成功");
		//删除数据
		deleteData();
	}
	//删除数据
	private void deleteData() {
		/**
		 * 第一个参数:表的名字
		 * 第二个参数:查询条件
		 * 第三个参数:占位符的值
		 * 
		 */
		db.delete("tbl_user2","_id=?",new String[]{"1"});
	}
	//修改数据
	private void updateData() {
		/**
		 * 第一个参数:表的名字
		 * 第二个参数:ContentValues的值
		 * 第三个参数:查询条件
		 * 第四个参数:占位符的值
		 * 
		 */
		ContentValues values=new ContentValues();
		values.put("name","briup2");
		values.put("passwd","456");
		db.update("tbl_user2", values,"_id=?",new String[]{"1"});
	}
	//查询数据
	private void queryData() {
		/**
		 * 第一个参数:是否去除重复的值
		 * 第二个参数:表的名字
		 * 第三个参数:要查询的字段名 ,类似于select id,name....
		 * 第四个参数:查询条件  类似于 name=?
		 * 第五个参数:占位符的值
		 * 第六个参数:分组查询
		 * 第七个参数:组函数的过滤条件
		 * 第八个参数:按照指定的顺序显示数据   _id desc 降序  asc 升序
		 * 第九个参数:分页处理   "5,10"
		 * 
		 */
		Cursor cursor = db.query(false,"tbl_user3",new String[]{"name","passwd"},"_id=?",new String[]{"1"},null,null,"_id asc",null);
		while(cursor.moveToNext()){
		//	int id=cursor.getInt(cursor.getColumnIndex("_id"));
			String name=cursor.getString(cursor.getColumnIndex("name"));
			String passwd=cursor.getString(cursor.getColumnIndex("passwd"));
			Log.i("Fourth2Activiy",name+":"+passwd);
		}
	}
	//添加数据
	private void addData() {
		/**
		 * 第一个参数:表的名字
		 * 第二个参数:字段的值永远为空值,一般为null
		 * 第三个参数:ContentValues对象
		 */
		ContentValues values=new ContentValues();
		values.put("name","这是名字3333");
		values.put("passwd","这是个密码");
		db.insert("tbl_user3",null, values);
	}
}


  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值