国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

SQLite數(shù)據(jù)庫存儲(chǔ)

2019-11-07 23:28:35
字體:
供稿:網(wǎng)友

我們先講解數(shù)據(jù)庫的創(chuàng)建。

在android中我們通常會(huì)用到SQLiteOpenHelper來建立數(shù)據(jù)庫,因?yàn)樗麜鴮懞唵?,并且可以快速的升?jí)數(shù)據(jù)庫的版本。 下面我們對(duì)SQLiteOpenHelper進(jìn)行一一解答:

創(chuàng)建一個(gè)數(shù)據(jù)庫:

繼承SQLiteOpenHelper

public class MySQLiteOpenHelper extends SQLiteOpenHelper { //這里的bank是數(shù)據(jù)庫的表名;而"banke.db"是整個(gè)數(shù)據(jù)庫的文件名; PRivate static final String sql = "create table bank(id integer primary key autoincrement ,name varchar , money integer)"; private static final String TAG = MySQLiteOpenHelper.class.getSimpleName(); public MySQLiteOpenHelper(Context context) { //第二個(gè)參數(shù)是數(shù)據(jù)庫文件名; //第三個(gè)參數(shù)為 factory 游標(biāo)工廠,null 表示使用默認(rèn)的工廠; //version 為版本號(hào); super(context, "banke.db", null, 1); } @Override public void onCreate(SQLiteDatabase db) { Log.d(TAG, "onCreate: enter"); db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }}

下面我們對(duì)增刪改查四個(gè)方法逐個(gè)講解;

sql語句:

增:String sql = "insert into bank (name , money ) values(?,?)"; database.execSQL(sql, new Object[]{"apple", 1800});刪:String sql = "delete from bank where name = ?"; database.execSQL(sql, new Object[]{"apple"});改:String sql = "update bank set money = ? where name =?"; database.execSQL(sql,new Object[]{1000,"apple"});查:String sql = "select (money) from bank where name = ?"; Cursor cursor1 = database.rawQuery(sql, new String[]{"apple"});

首先我們講-增;

使用方法有兩種:每次使用時(shí)都要得到

MySQLiteOpenHelper mySql = new MySQLiteOpenHelper(this);SQLiteDatabase mDatabase = mySql.getWritableDatabase();//第一種方法:/* insert(String table, String nullColumnHack, ContentValues values); String table 表示是數(shù)據(jù)表的表名(數(shù)據(jù)庫的文件名不等于數(shù)據(jù)表的表名這點(diǎn)得弄清楚) String nullColumnHack 當(dāng)下面的values為null時(shí)有效這個(gè)參數(shù)才有效,表示強(qiáng)行插入null值 ContentValues values */ ContentValues values = new ContentValues(); values.put("name", "apple"); values.put("money", 4999); mDatabase.insert("bank", null, values);//第二種方法://sql語句中的bank時(shí)數(shù)據(jù)庫的表名,values(?,?)里面的?號(hào)為占位符,這里的結(jié)果由execSQL中的new Object[]{}傳入; String sql = "insert into bank (name , money ) values(?,?)"; mDatabase.execSQL(sql, new Object[]{"apple", 1800});mDatabase.close();

同樣也是兩種方法;

MySQLiteOpenHelper mySql = new MySQLiteOpenHelper(this);SQLiteDatabase mDatabase = mySql.getWritableDatabase();//第一種:/* String table 數(shù)據(jù)表的表名 String[] columns, 要查詢出來的列名; String selection, 相當(dāng)于select語句where 后面的部分,可提供占位符, String[] selectionArgs,為上一個(gè)占位符提供參數(shù), String groupBy, String having, String orderBy */Cursor cursor = mDatabase.query("bank", new String[]{"money"}, "name = ?", new String[]{"HUAWEI"}, null, null, null);//第二種://sql中 select 表示要查的內(nèi)容 from 數(shù)據(jù)庫表 where name = ? "?"號(hào)代表占位符; 下面這句話表示查詢name為 ?的一整行數(shù)據(jù);String sql = "select (money) from bank where name = ?"; Cursor cursor1 = mDatabase.rawQuery(sql, new String[]{"apple"}); while (cursor1.moveToNext()) { //int apple = cursor.getInt(cursor.getColumnIndex("money")); int huawei = cursor1.getInt(cursor1.getColumnIndex("money")); Log.d(TAG, "query: huawei = " + huawei); } cursor.close();mDatabase.close();//如果是要查詢整張表那么select語句后面的where部分就不需要了,如下;//查詢整張表的所有內(nèi)容;String sql = "select * from bank";Cursor cursor = database.rawQuery(sql, null);

刪除

MySQLiteOpenHelper mySql = new MySQLiteOpenHelper(this); SQLiteDatabase database = mySql.getWritableDatabase();//public int delete(String table, String whereClause, String[] whereArgs) whereClause如果為null表示刪除所有 int list = database.delete("bank", "name = ?", new String[]{"HUAWEI"}); //list 表示影響的行數(shù),0表示沒有刪除成功 Log.d(TAG, "delete: list = " + list); //這里表示刪除name為apple的一行數(shù)據(jù); String sql = "delete from bank where name = ?"; database.execSQL(sql, new Object[]{"apple"}); //表示刪除bank表中的所有數(shù)據(jù); String sql = "delete from bank"; database.execSQL(sql, new Object[]{}); database.close();

修改

MySQLiteOpenHelper mySql = new MySQLiteOpenHelper(this); SQLiteDatabase database = mySql.getWritableDatabase();// ContentValues values = new ContentValues();// values.put("money", 55555);// database.update("bank", values, "name = ?", new String[]{"apple"});// 這里是指更新bank表中的name對(duì)應(yīng)的money,where后面也可以指定id或表中對(duì)應(yīng)的其它有的變量,如name; String sql = "update bank set money = ? where name =?"; database.execSQL(sql,new Object[]{1000,"apple"}); database.close();//如果要修改一行的所有數(shù)據(jù)那么使用update()api會(huì)比較省事。// public int update(String table, ContentValues values, String whereClause, String[] whereArgs) //whereClause為null的話表示更新整個(gè)表有數(shù)據(jù)的每一行;database.update("bank", values, "id = ?", new String[]{"這里是所需要修改的行標(biāo)"});
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 封开县| 南投县| 台东市| 吴桥县| 闻喜县| 淳安县| 建平县| 庆阳市| 石城县| 合山市| 明溪县| 宁陵县| 安福县| 潞西市| 堆龙德庆县| 阜南县| 潜江市| 鲁甸县| 富平县| 格尔木市| 蒙自县| 永寿县| 海阳市| 虎林市| 来宾市| 江孜县| 康保县| 南澳县| 儋州市| 年辖:市辖区| 肇庆市| 南平市| 南汇区| 晋江市| 嘉义市| 昌江| 双峰县| 梅河口市| 洪江市| 华坪县| 洱源县|