編輯:關於android開發
在《Android SQL語句實現數據庫的增刪改查》中介紹了使用sql語句來實現數據庫的增刪改查操作,本文介紹Android 系統API實現數據庫的增刪改查和SQLite3工具的使用。
相關代碼修改如下:
package com.wuyudong.db.dao;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.wuyudong.db.PersonSQLiteOpenHelper;
import com.wuyudong.db.domain.Person;
public class PersonDao {
private PersonSQLiteOpenHelper helper;
public PersonDao(Context context) {
helper = new PersonSQLiteOpenHelper(context);
}
/**
* 添加一條記錄到數據庫
*
* @param name
* 姓名
* @param number
* 電話
*/
public void add(String name, String number) {
SQLiteDatabase db = helper.getWritableDatabase();
// db.execSQL("insert into person (name,number) values (?,?)",
// new Object[] { name, number });
ContentValues values = new ContentValues();
values.put("name", name);
values.put("number", number);
db.insert("person", null, values);
db.close();
}
/**
* 查詢記錄是否存在
*
* @param name
* 姓名 return true存在, false不存在
*/
public boolean find(String name) {
SQLiteDatabase db = helper.getReadableDatabase();
// Cursor cursor = db.rawQuery("select * from person where name=?",
// new String[] { name });
Cursor cursor = db.query("person", null, "name=?",
new String[] { name }, null, null, null);
boolean result = cursor.moveToNext();
cursor.close();
db.close();
return result;
}
/**
*
* @param name
* 要修改的人的姓名
* @param newnumber
* 新的號碼
*/
public void update(String name, String newnumber) {
SQLiteDatabase db = helper.getReadableDatabase();
// db.execSQL("update person set number=? where name=?", new Object[] {
// newnumber, name });
ContentValues values = new ContentValues();
values.put("number", newnumber);
db.update("person", values, "name=?", new String[] { newnumber });
db.close();
}
/**
* 刪除一條記錄
*
* @param name
*/
public void delete(String name) {
SQLiteDatabase db = helper.getReadableDatabase();
// db.execSQL("delete from person where name=?", new Object[] { name });
db.delete("person", "name=?", new String[] { name });
db.close();
}
/**
* 返回全部的數據庫信息
*
* @return
*/
public List<Person> findAll() {
List<Person> persons = new ArrayList<Person>();
SQLiteDatabase db = helper.getReadableDatabase();
// Cursor cursor = db.rawQuery("select * from person", null);
Cursor cursor = db.query("person", new String[] { "name", "id",
"number" }, null, null, null, null, null);
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex("id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String number = cursor.getString(cursor.getColumnIndex("number"));
Person person = new Person(id, name, number);
persons.add(person);
}
cursor.close();
db.close();
return persons;
}
}
兩種數據庫增刪改查方式的優缺點
1. 直接利用sql語句增刪改查
優點:非常的靈活,多表查詢,級聯查詢。
缺點:代碼容易出錯,方法沒有返回值。
2. 利用google包裝的api 執行增刪改查
優點: 代碼不容易出錯,寫起來簡單,方法有返回值
缺點: 不容易多表查詢。復雜表的操作,視圖都無法實現。
運行代碼後查看結果十分麻煩,下面介紹一種簡單的方法
cmd打開命令行
輸入“adb shell” 出現如下錯誤

以為是模擬器沒開的原因,但是打開模擬器後,還是一樣的錯誤出現

進入相應目錄

繼續進入databases 目錄

輸入如下命令:
sqlite3 person.db

執行一條sql語句如下:

Android Hack1 使用weight屬性實現視圖的居中顯示,androidhack1
Android Hack1 使用weight屬性實現視圖的居中顯示,androidhack1本文地址:http://www.cnblogs.com/wuyudong/p/
獲取手機通訊錄放入PinnedSectionListView中,按名字首字母排序,並且實現撥打電話功能。,釘釘撥打非通訊錄
獲取手機通訊錄放入PinnedSectionListView中,按名字首字母排序,並且實現撥打電話功能。,釘釘撥打非通訊錄 1 package com.lixu.ton
Android開發1:基本UI界面設計——布局和組件,androidui
Android開發1:基本UI界面設計——布局和組件,androidui前言 啦啦啦~本學期要開始學習Android開發啦~ 博主在開始學習前是完完全全的小白,只有在平時
Android中設置TextView的顏色setTextColor,textviewsetcolor
Android中設置TextView的顏色setTextColor,textviewsetcolor tv.setTextColor(Color.parseColor(#