加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Sqlite 数据库存储

发布时间:2020-12-12 19:40:03 所属栏目:百科 来源:网络整理
导读:数据存储的集中方式: 1. SharedPreferences存储 一般保存一些配置信息等简单信息 如:是否是第一次启动应用,保存用户信息(一个用户) 2. Internal Storage内部存储 数据存储在设备内部,建议存储一些小量数据 3. External Storage外部存储(SD) Java的IO操
数据存储的集中方式:
1. SharedPreferences存储
一般保存一些配置信息等简单信息
如:是否是第一次启动应用,保存用户信息(一个用户)
2. Internal Storage内部存储
数据存储在设备内部,建议存储一些小量数据
3. External Storage外部存储(SD)
Java的IO操作
4. Sqlite 数据库存储 (insert,update,delete,select)
Sqlite是一种嵌入式数据库系统。
5. 网络存储


以下案例是Sqlite 数据库存储

简单介绍一下SQLite数据库的语法:

SQLite 数据库
1)建表语句
create table 表名 (
列定义,
列定义,
...
列定义
)
列定义 : 列名 数据类型 约束
数据类型:integer , text , real , blob ,null
约束:primary key,not null
标识列:列名 integer primary key autoincrement
2)删除表
drop table 表名
3)插入数据
insert into 表名(列1名,列2名,...) values(值1,值2,值3,。。。)
4)更新数据
update 表名 set 列名=值,列2名=值 where 条件表达式
5)删除数据
delete from 表名 where 条件表达式
6)查询数据
select 列集|*
from 表名
where 行过滤表达式
group by 分组条件 having 组过滤条件
order by 排序表达式 desc|asc


步骤1

需要创建一个继承SQLiteOpenHelper的数据库,下面是创建数据库的代码结构

 class * extends SQLiteOpenHelper {
		private static String dbname = "note.db" ;
		// 构造函数
		public DBHelper(Context context) {
		super(context,dbname,null,1);
		}
		
		@Override
		... onCreate(SqliteDatabase db,...) {
			db.execSQL(建表语句)
		}
		@Override
		... onUpgrade(SqliteDatabase db,int oldVersion,int newVersion) {
			db.execSQL(删除表)
			onCreate(db) ;
		}
	}
步骤2

通过JAVA语言访问创建的这个数据库

2)执行数据库操作
i。获取SqliteDatabase对象
SqliteDatabase db = new 步骤一对象().getReadableDatabase() / getWritableDatabase() ;
ii。执行数据库
方法一:execSQL() rawQuery() 需要提供sql语句
方法二:insert(),delete(),update(),query() 不需要提供sql语句
3)类ContentValue:用来保证列和值的一一对应性
ContentValues values = new ContentValues();
values.put(列名,值) ;
...

以下是代码实现步骤1:创建数据库

public class DBHelper extends SQLiteOpenHelper{
	
	//声明和数据库相关一些常量
	private static String dbname = "note.db";
	public static final String TABLE_NOTE = "tb_note";
	public static final String COLUMN_ID = "_id";
	public static final String COLUMN_TITLE = "title";
	public static final String COLUMN_CONTENT = "content";
	public static final String COLUMN_DATE = "date";
	
	public DBHelper(Context context) {
		super(context,1);
	}
	//onCreate此方法为回调方法,每次执行钱会检查手机文件夹中是否含有note.db这个数据库,只检查名字
	//如果含有则不再执行这个方法
	@Override
	public void onCreate(SQLiteDatabase db) {
		String sql = "create table" + TABLE_NOTE + "("
				+ COLUMN_ID + "integer primary key autoincrement,"
				+ COLUMN_TITLE + "text not null,"
				+ COLUMN_CONTENT + "text"
				+ COLUMN_DATE + "text"
				+ ")";
		db.execSQL(sql);
	}
	//如果oldVersion版本与newVersion版本不一致则删除表TABLE_NOTE
	@Override
	public void onUpgrade(SQLiteDatabase db,int newVersion) {
		
		db.execSQL("drop table" +TABLE_NOTE) ;
		onCreate(db);
	}
}

代码实现步骤2
public class MainActivity extends Activity {
	private SQLiteDatabase db;

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

		db = new DBHelper(this).getWritableDatabase();

		db.execSQL("insert into " + DBHelper.TABLE_NOTE + " values(null,'title','content','2015-08-26')") ;
		// 21
	ContentValues values = new ContentValues() ;
	values.put(DBHelper.COLUMN_TITLE,"标题") ;
	values.put(DBHelper.COLUMN_DATE,"2015-08-27") ;
	db.insert(DBHelper.TABLE_NOTE,values) ;
	Toast.makeText(this,"insert over!",Toast.LENGTH_LONG).show();
	// 更新语句
		// 1
	db.execSQL("update " + DBHelper.TABLE_NOTE + " set "+DBHelper.COLUMN_CONTENT + "='吃饭'") ;
		// 2
	values.clear() ;
	values.put(DBHelper.COLUMN_CONTENT,"晚上去超市买零食!");
	values.put(DBHelper.COLUMN_DATE,"2015-09-27") ;
	db.update(
			DBHelper.TABLE_NOTE,values,DBHelper.COLUMN_ID + "=? or " + DBHelper.COLUMN_ID + "=?",// 描述where条件
			new String[]{"1","3"}  // where中?的值构成的String数组
			) ;
	Toast.makeText(this,"update over!",Toast.LENGTH_LONG).show();
	}
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读