android studio 用SQLite寫的便籤

剛剛開年,風輕雲淡。

昨天領導叫我用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<String> 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<arrayList.size() ; 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<String> 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<arrayList.size(); 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<String> 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<String> findUser(){
    String sql =
"select * from user_info";
   
Cursor cursor = db.rawQuery(sql , null);
   
cursor.moveToFirst();
   
ArrayList<String> arrayList = new ArrayList<>();
    while
(cursor.moveToNext()){
        String name = cursor.getString(cursor.getColumnIndex(
"name"));
       
arrayList.add(name);
   
}
   
return arrayList;
}
 





附上GitHub地址:https://github.com/DingMr/NoteDemo

付出不一定有收穫,你的點贊是我寫下去的動力。










發佈了42 篇原創文章 · 獲贊 24 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章