您的位置:首页 > 数据库

Sqlite 数据库存储

2015-08-27 11:03 260 查看
数据存储的集中方式:

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, dbname, null, 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 oldVersion, 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, null, 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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: