Android連載35-使用SQLiteDatabase自帶增刪改功能

1、添加數據

  • SQLiteDatabase中提供了insert方法,內含有三個參數,一個是表名,第二個是在未指定添加數據的狀況下給某些可爲空的列自動賦值NULL,第三個參數是一個CotentValues對象,它提供了一系列put方法重載,用於向ContentValues中添加數據。
  • 修改activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
..............省略部分重複的代碼............
	<Button
	    android:id="@+id/add_data"
	    android:layout_width="match_parent"
	    android:layout_height="wrap_content"
	    android:text="Add data"/>

</LinearLayout>
  • 咱們添加了一個按鈕,而後爲這個按鈕綁定事件,修改MainActivity.java
..........省略上面的代碼...........
		Button addData = (Button)findViewById(R.id.add_data);
		addData.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				SQLiteDatabase db = dbHelper.getWritableDatabase();
				ContentValues values = new ContentValues();
				//開始組裝第一條數據
				values.put("name", "The Da Vinci Code");
				values.put("author", "Dan Brown");
				values.put("pages", 454);
				values.put("price", 16.96);
				db.insert("Book",null,values);//插入第一條數據
				values.clear();
				//開始組裝第二條數據
				values.put("name", "The Lost Symbol");
				values.put("author", "Dan Brown");
				values.put("pages", 510);
				values.put("price", 19.95);
				db.insert("Book", null, values);//插入第二條數據
			}
		});
  • 咱們生成這個app,進行點擊「Add data"按鈕,而後利用dos窗口工具查看數據庫內含有的Book表
    35.2

2、更新數據

  • SQLiteDatabase中提供了update方法,內含有四個參數,一個是表名,第二個參數是一個CotentValues對象,它提供了一系列put方法重載,用於向ContentValues中添加數據。第三個或者第四個參數用於去約束更新某一行或者幾行的數據。不指定的話就會默認更新全部行。
  • 修改activity_main.xml
<Button 
	    android:id="@+id/update_data"
	    android:layout_width="match_parent"
	    android:layout_height="wrap_content"
	    android:text="Update data"
	    />
  • 在添加一個按鈕,而後來綁定點擊事件
Button updateData = (Button)findViewById(R.id.update_data);
		updateData.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				SQLiteDatabase db = dbHelper.getWritableDatabase();
				ContentValues values = new ContentValues();
				values.put("price", 10.99);
				db.update("Book",values,"name=?",new String[] {
						"The Da Vinci Code"
				});
			}
		});

35.3

  • 能夠看到其實三四個參數相似於SQL語句的where部分和PreparedStatement用法有殊途同歸之妙。

3、刪除數據

  • SQLiteDatabase中提供了delete方法,內含有三個參數,一個是表名,第二個和第三個參數用於去約束刪除某一行或者幾行的數據。不指定的話就會默認刪除全部行。
  • 修改activity_main.xml
<Button 
	    android:id="@+id/delete_data"
	    android:layout_width="match_parent"
	    android:layout_height="wrap_content"
	    android:text="Delete data"
	    />
Button deleteButton = (Button)findViewById(R.id.delete_data);
		deleteButton.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				SQLiteDatabase db = dbHelper.getWritableDatabase();
				db.delete("Book", "pages > ?", new String[] {
						"500"
				});
			}
		});

35.5
35.6

4、源碼:

相關文章
相關標籤/搜索