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的数据库,下面是创建数据库的代码结构
通过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:创建数据库
代码实现步骤2
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(); } }
相关文章推荐
- MySQL中利用外键实现级联删除、更新
- mysql删除重复数据的sql
- mongodb的安装和简单实用以及32-bit servers don't have journaling enabled by default. Please use --journal 错误
- 认识mongoDB数据库
- sqoop导入数据到关系型数据库到hive
- H2数据库使用
- redis中SETEX和SET有什么区别?
- Cannot set a credential for principal 'sa'. (Microsoft SQL Server,错误: 15535)
- 两种方法清空memcache
- Install MongoDB on OS X
- Install MongoDB on Ubuntu
- Win8(64)安装Oracle11g+PL/SQL
- Install MongoDB on Red Hat Enterprise or CentOS Linux
- 【云快讯】《Salesforce云服务“改头换面”,并将推出新的金融服务云》
- Windows下安装MongoDb
- Mysql远程链接数据库
- oracle数据库解决查询值为null的情况
- mysql之test表
- 看懂SqlServer查询计划
- RHEL6 postfix+dovecot+mysql 邮件服务配置