刚刚开年,风轻云淡。
昨天领导叫我用SQLite数据库写一个便签。于是,我便写了。
用数据库写便签,无外乎就是对数据库的增删改查的一些操作,UI界面随自己心意而定。
我今天主要也是说一些数据库的操作。话不多说,我们进入正题。
1.SQLite简介
SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入 式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java、C++、.Net等,还有ODBC接口,同样比起 Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。
二.SQLiteDatabase的介绍 Android提供了创建和是用SQLite数据库的API。SQLiteDatabase代表一个数据库对象,提供了操作数据库的一些方法。在Android的SDK目录下有sqlite3工具,我们可以利用它创建数据库、创建表和执行一些SQL语句。下面是SQLiteDatabase的常用方法。 SQLiteDatabase的常用方法
方法名称
方法表示含义
openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory factory)
打开或创建数据库
insert(String table,String nullColumnHack,ContentValues values)
插入一条记录
delete(String table,String whereClause,String[] whereArgs)
删除一条记录
query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy)
查询一条记录
update(String table,ContentValues values,String whereClause,String[] whereArgs)
修改记录
execSQL(String sql)
执行一条SQL语句
close()
关闭数据库
创建数据库
创建数据库工具类
增删改查
创建数据库
构造方法创造数据库
super(context , "user" , null , 1);
参数一;上下文对象
参数二:数据库名称
参数三:游标工厂
参数四:当前数据库的版本
创建表
“create table 表名 (name verchar(20) ,age verchar(10) ,sex verchar(10))”
String sql = “create table 表名 (name verchar(20) ,age verchar(10) ,sex verchar(10))”
db.execSQL(sql);
创建数据库工具类
主要用来封装对数据的操作(增删改查)
声明数据库类的对象
声明数据库帮助类
public class MySqliteHelpe{
MySqlite mySqlite = null ;
SQLiteDatabase db = null ;
public MySqliteHelpe(Context context){
mySqlite = new MySqlite(context);
db = mySqlite.getReadableDatabase()
}
public void addUser(){
String sql = "insert info User__info (name , age) values ('coco' , '12')";
db.execSQL(sql);
}
public void findUser(){
String sql = "select * from user_info where name = ?";
Cursor cursor = db.rawQuery(sql , new String[]{"coco"});
cursor.moveToFirst();
while(cursor.isAfterLast){
String name = cursor.getString(cursor.getColumIndex("name"));
String age = cursor.getString(cursor.getColumIndex("age"));
cursor.maveToNext();
}
}
}
删除: delete from table1 范围 delete from user_info where name = 'coco' ;
更新: update table1 set filed1 = values where 范围
查找: select * from table1 where name =
数据库属于耗时操作
重点
数据库存储数据操纵流程
1,创建数据库:
创建一个类extends SQLiteOpenHelper 用构造方法创建数据库 创建表
2,创建数据库帮助类 主要封装对数据库的一些操作
public class
MySqliteHelp {
MySqlite
mySqlite
=
null ;
SQLiteDatabase
db
=
null ;
public
MySqliteHelp(Context context ){
mySqlite
=
new
MySqlite(context)
;
db
=
mySqlite
.getReadableDatabase()
;
}
创建数据库帮助类 主要用来封装对数据的操作(增删改查)
声明数据库类的对象 声明数据库帮助类
public void
addUser
(String name){
String sql =
"insert into user_info (name) values ('"
+name+
"')"
;
db
.execSQL(sql)
;
}
/*
添加用户的方法 用到的语句
insert into 表名 (列名)values (‘“+传进来的数据+”’)
db.execSQL(sql) 这句话的意思应该是执行上一句话
public int
deleteUser
(String name){
int
sum =
0
;
ArrayList arrayList =
new
ArrayList<>()
;
String sqq =
"select * from user_info"
;
Cursor cursor =
db
.rawQuery(sqq
, null
)
;
while
(cursor.moveToNext()){
String user_name = cursor.getString(cursor.getColumnIndex(
"name"
))
;
arrayList.add(user_name)
;
}
cursor.close()
;
for
(
int
i =
0
;
i
;
i++){
String ss = arrayList.get(i).toString()
;
if
(ss.equals(name)){
sum =
1
;
String sql =
"delete from user_info where name = '"
+name+
"'"
;
db
.execSQL(sql)
;
break;
}
}
return
sum
;
}
public int
setUser
(String name_on
,
String name_off){
int
sum =
0
;
ArrayList arrayList =
new
ArrayList<>()
;
String sqq =
"select * from user_info "
;
Cursor cursor =
db
.rawQuery(sqq
, null
)
;
cursor.moveToFirst()
;
while
(cursor.moveToNext()){
String ss = cursor.getString(cursor.getColumnIndex(
"name"
))
;
arrayList.add(ss)
;
}
cursor.close()
;
for
(
int
i =
0
;
i
;
i++){
if
(arrayList.get(i).toString().equals(name_on)){
sum =
1
;
String sql =
"update user_info set name = '"
+name_off+
"' where name = '"
+name_on+
"'"
;
db
.execSQL(sql)
;
}
}
return
sum
;
}
}
public int
selectUser
(String name){
int
sum =
0
;
ArrayList arrayList =
new
ArrayList<>()
;
String sql =
"select * from user_info"
;
Cursor cursor =
db
.rawQuery(sql
,null
)
;
cursor.moveToFirst()
;
while
(cursor.moveToNext()){
String select_name = cursor.getString(cursor.getColumnIndex(
"name"
))
;
arrayList.add(select_name)
;
}
cursor.close()
;
for
(
int
i =
0
;
i < arrayList.size()
;
i++){
if
(arrayList.get(i).toString().equals(name)){
sum =
1
;
}
}
return
sum
;
}
public
ArrayList
findUser
(){
String sql =
"select * from user_info"
;
Cursor cursor =
db
.rawQuery(sql
, null
)
;
cursor.moveToFirst()
;
ArrayList arrayList =
new
ArrayList<>()
;
while
(cursor.moveToNext()){
String name = cursor.getString(cursor.getColumnIndex(
"name"
))
;
arrayList.add(name)
;
}
return
arrayList
;
}
附上GitHub地址:https://github.com/DingMr/NoteDemo
付出不一定有收获,你的点赞是我写下去的动力。