摘要:應用中的任何類不包括應用外部的類均可按名稱訪問您所創建的任何數據庫。如果想讓自己創建的數據庫供外部應用使用,請使用對外提供接口。同時期待您的關注,感謝您的閱讀,謝謝
極力推薦文章:歡迎收藏
Android 干貨分享
本篇文章主要介紹 Android 開發中的部分知識點,通過閱讀本篇文章,您將收獲以下內容:
繼承SQLiteOpenHelper 創建數據庫,數據表
插入數據庫數據
刪除數據庫數據
查詢數據庫數據
修改數據庫數據
數據庫使用案例
Android 提供了對?SQLite?數據庫的完全支持。應用中的任何類(不包括應用外部的類)均可按名稱訪問您所創建的任何數據庫。如果想讓自己創建的數據庫供外部應用使用,請使用 ContentProvider對外提供接口。SQLite 輕量級數據庫使用方法如下:
1. 繼承SQLiteOpenHelper 創建數據庫,數據表 創建數據庫表 1. 語法創建數據表語法 如下:
2. 舉例舉例 如下:
3.繼承SQLiteDBHelper的創建數據庫、數據表創建數據庫、數據表 方法如下:
4.刪除數據庫表刪除數據庫表方法如下:
DROP TABLE IF EXITS TABLE_NAME;2. 插入數據庫數據 插入數據方法一
語法
INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)] VALUES (value1, value2, value3,...valueN);
舉例
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, "Paul", 32, "California", 20000.00 );插入數據方法二
語法
INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);
舉例
INSERT INTO COMPANY VALUES (7, "James", 24, "Houston", 10000.00 );Android 封裝insert()插入數據方法三
1.語法
insert(String table, String nullColumnHack, ContentValues values)
2.舉例
private SQLiteDatabase db; db.insert(SQLiteDBHelper.TABLE_NAME, null, values);3. 刪除數據庫數據 刪除數據庫數據方法一
1.語法
DELETE FROM table_name WHERE [condition];
2.舉例
DELETE FROM COMPANY WHERE ID = 7;2.Android封裝刪除數據庫數據方法二
1.語法
delete(String table, String whereClause, String[] whereArgs)
舉例
private SQLiteDatabase db; db.delete(SQLiteDBHelper.TABLE_NAME, "name=?", new String[] { "Jack" });4. 查詢數據庫數據 查詢數據庫方法一
1.語法
SELECT column1, column2, columnN FROM table_name;
查詢表中所有數據的方法
SELECT * FROM table_name;
2.舉例
//1.查詢指定的列 SELECT ID, NAME, SALARY FROM COMPANY; // 2.查詢表中所有內容 SELECT * FROM COMPANY;Android 封裝查詢數據庫方法二
1.語法
query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy)
2.舉例
private SQLiteDatabase db; Cursor cursor = db.query(SQLiteDBHelper.TABLE_NAME, null, null, null, null, null, null);5. 修改數據庫數據 修改數據庫方法一
1.語法
UPDATE table_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];
2.舉例
UPDATE COMPANY SET ADDRESS = "Texas" WHERE ID = 6;Android update 封裝修改數據庫方法二
1.語法
update(String table, ContentValues values, String whereClause, String[] whereArgs)
2.舉例
db.update(SQLiteDBHelper.TABLE_NAME, values, "nickname=?", new String[] { "J" });6. 數據庫使用案例
實現效果
創建數據庫創建數據庫 方法如下:
public class SQLiteDBHelper extends SQLiteOpenHelper { public static String DB_NAME = "person.db"; // version 必須大于1 public static int DB_VERSION = 1; public static String TABLE_NAME = "person"; public static String _ID = "_id"; public static String NAME = "name"; public static String NICK_NAME = "nickname"; public SQLiteDBHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); // TODO Auto-generated constructor stub } public SQLiteDBHelper(Context context) { super(context, DB_NAME, null, DB_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // SQLite 數據庫中,字段一般不區分類型,但是主鍵除外,主鍵必須是整型 String sql = "CREATE TABLE " + TABLE_NAME + "(" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL" + "," + NAME + " CHAR(10)," + NICK_NAME + " CHAR(10))"; db.execSQL(sql); } // 數據庫升級的處理方法, @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { if (newVersion > oldVersion) { // 刪除老的數據表,創建新表 String dropsql = "DROP TABLE IF EXITS " + TABLE_NAME; db.execSQL(dropsql); onCreate(db); } } }數據庫增加數據方法實現
數據庫增加數據方法實現代碼如下:
// public void InsertSQL(View view) { InstertDB(); QueryDB(); } /** * 插入數據處理方法 */ private void InstertDB() { ContentValues values = new ContentValues(); values.put("name", "Jack"); values.put("nickname", "J"); // 返回值:最近插入的那一行的行號 long result = db.insert(SQLiteDBHelper.TABLE_NAME, null, values); if (result > 0) { Toast.makeText(getApplicationContext(), "添加成功", Toast.LENGTH_SHORT) .show(); } else { Toast.makeText(getApplicationContext(), "添加失敗", Toast.LENGTH_SHORT) .show(); } }數據庫刪除內容方法實現
數據庫刪除內容方法實現代碼如下:
/** * 刪除數據 */ private void DeleteDb() { int result = db.delete(SQLiteDBHelper.TABLE_NAME, "name=?", new String[] { "Jack" }); if (result > 0) { Toast.makeText(getApplicationContext(), "刪除成功", Toast.LENGTH_SHORT) .show(); } else { Toast.makeText(getApplicationContext(), "無Jack", Toast.LENGTH_SHORT) .show(); } }數據庫修改內容方法實現
數據庫修改內容方法實現代碼如下:
/** * 修改數據 */ private void UpdateDb() { // update person set name="Kitty" where nickname="J" ContentValues values = new ContentValues(); values.put("name", "Lucy"); int result = db.update(SQLiteDBHelper.TABLE_NAME, values, "nickname=?", new String[] { "J" }); if (result > 0) { QueryDB(); } }數據庫查詢方法實現
數據庫查詢方法實現代碼如下:
/** * 查詢數據處理方法 */ private void QueryDB() { // Select * from person where name= ? // db.rawQuery(s) // cursor 游標--》 結果集合 // 當使用SimpleCusorAdapter 時候,cursor 這個記過里面 必須包含“_id”,這個字段 // Cursor cursor = db.query(SQLiteDBHelper.TABLE_NAME, null, "name=?", // new String[] { "Jack" }, null, null, null); Cursor cursor = db.query(SQLiteDBHelper.TABLE_NAME, null, null, null, null, null, null); while (cursor.moveToNext()) { String name = cursor.getString(cursor.getColumnIndex("name")); String nickname = cursor.getString(cursor .getColumnIndex("nickname")); } // 將一個新的cusor跟原有的custor 交換 adapter.swapCursor(cursor); adapter.notifyDataSetChanged(); }
布局如下
ListView item布局如下
至此,本篇已結束,如有不對的地方,歡迎您的建議與指正。同時期待您的關注,感謝您的閱讀,謝謝!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75894.html
閱讀 3699·2021-11-11 16:55
閱讀 1646·2021-10-08 10:04
閱讀 3581·2021-09-27 13:36
閱讀 2761·2019-08-30 15:53
閱讀 1855·2019-08-30 11:17
閱讀 1259·2019-08-29 16:55
閱讀 2098·2019-08-29 13:57
閱讀 2513·2019-08-29 13:13