国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

android中SQLite使用及特點

瀏覽:8日期:2022-09-19 11:19:53
1.SQLite的特點 SQLite是一個輕量級數據庫,它設計目標是嵌入式的,而且占用資源非常低 SQLite沒有服務器進程,通過文件保存數據,該文件是跨平臺的 支持null,integer,real,text,blob五種數據類型,實際上SQLite也接受varchar,char,decimal等數據類型,只不過在運算中或保存時會轉換成對應的5種數據類型,因此,可以將各種類型數據保存到任何字段中2.SQLite的使用 2.1數據庫的創建

在android中,創建SQLite數據庫非常簡單。Android系統推薦使用SQLiteOpenHelper的子類創建數據庫,因此需要創建一個類繼承自SQLiteOpenHelper,并重寫該類的onCreate和onUpgrade方法即可

android中SQLite使用及特點

import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class DBHelper extends SQLiteOpenHelper { /** * 作為SQLiteOpenHelper子類必須有的構造方法 * @param context 上下文參數 * @param name 數據庫名字 * @param factory 游標工廠 ,通常是null * @param version 數據庫的版本 */ public DBHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {super(context, name, factory, version); } /** * 數據庫第一次被創建時調用該方法 * @param db */ @Override public void onCreate(SQLiteDatabase db) {// 初始化數據庫的表結構,執行一條建表的SQL語句db.execSQL('create table user(u_id int not null primary key,u_name varchar(50) not null,age int)'); } /** * 當數據庫的版本號增加調用 * @param db * @param oldVersion * @param newVersion */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }}2.2新增(insert)

public void insert(String name,int age){// 通過DBHelper類獲取一個讀寫的SQLiteDatabase對象SQLiteDatabase db=dbHelper.getWritableDatabase();// 創建ContentValue設置參數ContentValues contentValues=new ContentValues();contentValues.put('name',name);contentValues.put('age',age);// 插入數據// insert方法參數1:要插入的表名// insert方法參數2:如果發現將要插入的行為空時,會將這個列名的值設為null// insert方法參數3:contentValuelong i=db.insert('user',null ,contentValues);// 釋放連接db.close(); }2.3修改(update)

public void update(String name,int age){// 通過DBHelper類獲取一個讀寫的SQLiteDatabase對象SQLiteDatabase db=dbHelper.getWritableDatabase();// 創建ContentValue設置參數ContentValues contentValues=new ContentValues();contentValues.put('age',age);// 修改數據// 參數1:tablename// 參數2:修改的值// 參數3:修改的條件(SQL where語句)// 參數4:表示whereClause語句中的表達式的占位符參數列表,這些字符串會替換where條件中?db.update('user',contentValues,'name=?',new String[]{name});// 釋放連接db.close(); }2.4刪除(delete)

public void delete(long id) {// 通過DBHelper類獲取一個讀寫的SQLiteDatabase對象SQLiteDatabase db = dbHelper.getWritableDatabase();// 參數1:tablename// 參數2:刪除的條件(SQL語句)// 參數3:給修改的條件注入參數,一個或多個db.delete('user', 'u_id=?', new String[]{id + ''});// 釋放連接db.close(); }2.5查詢(query)

public void query() {// 通過DBHelper類獲取一個讀寫的SQLiteDatabase對象SQLiteDatabase db = dbHelper.getWritableDatabase();// 參數1:table_name// 參數2:columns 要查詢出來的列名。相當于 select *** from table語句中的 ***部分// 參數3:selection 查詢條件字句,在條件子句允許使用占位符“?”表示條件值// 參數4:selectionArgs :對應于 selection參數 占位符的值// 參數5:groupby 相當于 select *** from table where && group by ... 語句中 ... 的部分// 參數6:having 相當于 select *** from table where && group by ...having %%% 語句中 %%% 的部分// 參數7:orderBy :相當于 select ***from ?? where&& group by ...having %%% order by@@語句中的@@ 部分,如: personid desc(按person 降序)Cursor cursor = db.query('user', null, null, null, null, null, null);// 將游標移到開頭cursor.moveToFirst();while (!cursor.isAfterLast()) { // 游標只要不是在最后一行之后,就一直循環 int id=cursor.getInt(0); String name=cursor.getString(1); // 將游標移到下一行 cursor.moveToNext();}db.close(); }3.使用SQL語句進行數據庫操作

// 通過DBHelper類獲取一個讀寫的SQLiteDatabase對象SQLiteDatabase db = dbHelper.getWritableDatabase(); // insertdb.execSQL('insert into user (id,name,age) values (?,?,?)',new Object[]{1,'張三',18});// updatedb.execSQL('update user set name=? where id=?',new Object[]{'張三',1});// deletedb.execSQL('delete from user where id=1');// queryCursor cursor = db.rawQuery('select * from user where id=?', new String[]{'1'});4.SQLite事務

SQLite數據庫同樣支持事務

事務操作后一定要使用endTransaction()方法關閉事務,當執行到endTransaction()時,首先會檢查是否有事務執行成功標記,有則提交數據庫,無則回滾數據

DBHelper dbHelper = new DBHelper(MainActivity.this, 'test.db', null, 0);// 通過DBHelper類獲取一個讀寫的SQLiteDatabase對象SQLiteDatabase db = dbHelper.getWritableDatabase();// 開始事務db.beginTransaction();try {// 標記數據庫事務執行成功 db.setTransactionSuccessful();}catch (Exception e){ Log.i('事務處理失敗',e.getMessage());}finally { db.endTransaction(); //關閉事務 db.close(); // 關閉數據庫}

到此這篇關于android中SQLite使用及特點的文章就介紹到這了,更多相關android使用SQLite內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Android
相關文章:
主站蜘蛛池模板: 久久精品国产99国产精品亚洲 | 久草手机视频在线观看 | 特黄特黄黄色大片 | 精品三级国产 | 2021国产精品自拍 | 国产小说 | 国产在线欧美精品 | 久久综合中文字幕一区二区三区 | 一级一片| 三级黄色在线观看 | 久久er热这里只有精品23 | 一级色| 亚洲国产片| 久久小视频 | 欧美国产综合在线 | 麻豆理论片| 成人免费视频国产 | 国产成人精品亚洲一区 | 国产成人亚洲欧美三区综合 | 手机在线免费看毛片 | 欧美成人另类 | 亚洲人成影院在线高清 | 亚洲不卡在线观看 | 久久久成人影院 | 日韩性黄色一级 | 一级a毛片免费观看 | 久久青草免费免费91线频观看 | 免费看一级欧美毛片 | 亚洲精品中文字幕一区 | 在线精品国产成人综合第一页 | 欧美一级特黄做 | 中文字幕亚洲一区二区v@在线 | 三级毛片在线免费观看 | 国产精品成人一区二区不卡 | 亚洲精品永久一区 | 欧美人成毛片在线播放 | 欧美视频亚洲视频 | 欧美f | 男女超猛烈啪啦啦的免费视频 | 日本不卡不码高清免费观看 | 理论视频在线观看 |