久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

SQLite數(shù)據(jù)庫以及增刪改查的案例

 wwwijhyt圖書館 2020-07-23

Android使用開源的與操作系統(tǒng)無關(guān)的SQL數(shù)據(jù)庫——SQLite

一:在命令行下創(chuàng)建數(shù)據(jù)庫:

1.啟動模擬器后,打開命令行,,執(zhí)行adb shell

2.進入所在工程目錄

3.執(zhí)行sqlite3 mydb創(chuàng)建數(shù)據(jù)庫文件

:表示結(jié)尾,,--表示注解

二:包Android.database.sqlite包含了使用SQLite數(shù)據(jù)庫的所有API

SQL數(shù)據(jù)庫主要概念之一就是Schema——一個關(guān)于如何組織數(shù)據(jù)庫的定義

單表定義表明和列表:

復(fù)制代碼
public final class FeedReaderContract{
    public FeedReaderContract(){
        /*Inner class that defines the table contents*/
              public static abstract class FeedEntry implements BaseColumns{
                  public static final String TABLE_NAME="entry";
                  public static final String COLUMN_NAME_ENTRY_ID="entryid";
                  public static final String COLUMN_NAME_TITLE="title";
                  public static final String COLUMN_NAME_SUBTITLE="subtitle";
     }
}
復(fù)制代碼

使用SQLiteOpenHelper創(chuàng)建數(shù)據(jù)庫

代碼案例:

復(fù)制代碼
//從SQLiteOpenHelper派生一個類
public class FeedReaderDbHelper extents SQLiteOpenHelper{
    public static final int DATABASE_VERSION=1;
    public static final String DATABASE_NAME="FeedReader.db";
     //構(gòu)造函數(shù)產(chǎn)生一個庫
    public FeedReaderDbHelper(Context context){super(context,DATABASE_NAME,null,DATABASE_VERSION);}
     //重點,庫產(chǎn)生之后形成一個表
    public void onCreate(SQLiteDatabase db){db.execSQL(SQL_CREATE_ENTRIES);}
    public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion){
        db.execSQL(SQL_DELETE_ENTRIES);onCreate(db);
        }
     public void onDowngrade(SQLiteDatabase db,int oldVersion,int newVersion){
        onUpgrade(db,oldVersion,newVersion);
    }
}
//使用以下語句創(chuàng)建數(shù)據(jù)庫助手類對象
FeedReaderDbHelper mDbHelper =new FeedReaderDbHelper(getContext());
復(fù)制代碼

插入數(shù)據(jù):

代碼案例:

復(fù)制代碼
//在私有目錄產(chǎn)生db,文件和表,,然后插入數(shù)據(jù)
//插入兩種方法
SQLiteDatabase db=new mDbHelper.getWritableDatabase();
//Create a new map of values,where column names are the keys
ContentValues values=new ContentValues();
values.put{FeedEntry.COLUMN_NAME_ENTRY_ID,id);
values.put{FeedEntry.COLUMN_NAME_TITLE,title);
values.put{FeedEntry.COLUMN_NAME_CONTENT,content);
//Insert the new row,returning the primary key values of the new row
long new Rowld;
newRowld=db.inset{
     FeedEntry.TABLE_NAME,
     FeedEntry.COLUMN_NAME_NULLABLE,
     values);
復(fù)制代碼

查詢數(shù)據(jù):

代碼案例:

復(fù)制代碼
SQLiteDatabase db=mDbHelper.getReadableDatabase();
String[] projection={FeedEntry._ID,FeedEntry.COLUMN_NAME_TITLE,FeedEntry.COLUMN_NAME_UPDATED};
String sortOrder=FeedEntry.COLUMN_NAME_UPDATED+"DESC";
Cursor c=db.query{
    FeedEntry.TABLE_NAME,//表名
    projection,//要查詢的列名
    selection,//查詢條件
    selectionArgs,//查詢條件的參數(shù)
    null,//分組條件
    null,//分組條件的參數(shù)
    sortOrder,//排序條件
    limit//分頁條件
};
復(fù)制代碼

 在讀數(shù)值之前,,必須要調(diào)用move方法,首先調(diào)用moveToFirst()方法,,游標到了第一個位置,,取值就用get()方法,getString(),getLong()....但是get方法要傳入index做參數(shù),,這個參數(shù)可以通過getColumnIndex()和getColumnIndexThrow()方法獲取

//指針置首
cursor.moveToFirst();
//根據(jù)給定的列名,,取值
long itemld=cursor.getLong{
     cursor.getColumnIndexOrThrow(FeedReaderContract.FeedEntry_ID)
};

刪除數(shù)據(jù):

要是想刪除一個表里的行,就要提供篩選標準來確定要刪除的行。

數(shù)據(jù)庫API提供一個機制來創(chuàng)建篩選標準,,來防止SQL注入攻擊,。

//定義查詢的WHERE部分
String selection=FeedReaderContract.FeedEntry.COLUMN_NAME_ENTRY_ID+"LIKE?";
    //Specify arguments in placeholder order.
    String[] selectionArgs={String.valueOf(rowld)};
    //組裝SQL語句
    //delete()方法中

參數(shù)1:表名

參數(shù)2:WHERE語句

參數(shù)3:要查的字段

db.delete{table_name,selection,selectionArgs);

更新數(shù)據(jù):

復(fù)制代碼
SQLiteDatabase db=mDbHelper.getReadableDatabase();
//列新的值
ContentValues values=new ContentValues();
    values.put(FeedReaderContract.FeedEntry.COLUMN_NAME_TITLE,title);
//根據(jù)ID,確定需要update的列
String selection=FeedReaderContract.FeedEntry.COLUMN_NAME_ENTRY_ID+"LIKE?";
    String[] selelectionArgs={String.valueOf(rowld)};
//執(zhí)行update
int count=db.update{
    FeedReaderDbHelper.FeedEntry.TABLE_NAME,
    values,
    selection,
    selectionArgs);
復(fù)制代碼

使用原生SQL語句:

通過databaseHelper.getWritableDatabase()或getReadableDatabase()獲取SQLiteDatabase對象后;

插入數(shù)據(jù):

db.execSQL("insert into person(name,age)values(?,?)",new Object[]{"hhj",20});

查詢數(shù)據(jù): 

Cursor cursor=db.rawQuery("select * from person where name like ? and age=?",new String[]{"%ne%","20"});

 

刪除數(shù)據(jù):

db.execSQL("delete from person where personid=2");

更新數(shù)據(jù):

db.execSQL("update person set name='hhj',age=20 where personid=1"};

 

 

 

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多