編輯:關於Android編程
SQLite是一種輕量級的關系型數據庫,它體積小,零配置,可以直接運行在應用程序的進程中,非常適合嵌入式的操作系統。
首先要創建一個SQLite數據庫
通過類來實現SQLiteHelper這個抽象類,
public class PersonSqliteHelper extends SQLiteOpenHelper {
public PersonSqliteHelper(Context context) {
super(context, "person.db", null, 1);
}裡面有四個參數分別是context,數據庫名稱,工廠,和版本
傳的參數本來有四個,只需要保留一個就好了。
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table person (id integer primary key autoincrement,name varchar(20),number varchar(20))");
}onCreate是數據庫第一次被創建時調用的方法
這些還沒有真正的創建數據庫
PersonSqliteHelper p=new PersonSqliteHelper(this); p.getWritableDatabase();
有getReadableDatabase()和getWritableDatabase()兩個方法可用。
下面通過一些常見的操作來演示一下SQLite的增刪該查操作
private PersonSqliteHelper helper;
// 在構造函數裡完成helper的初始化
public PersonDao(Context context) {
helper = new PersonSqliteHelper(context);
}
/**
* 添加一條數據到數據庫
* @param name 姓名
* @param number 電話號碼
* @return 返回插入的數據的id
* */
private boolean find(String name) {
SQLiteDatabase db = helper.getReadableDatabase();
Cursor cursor = db.query("person", null, "name=?",new String[] { name }, null, null, null);
boolean result = cursor.moveToNext();
cursor.close();
db.close();
return result;
}
在上面的代碼中首先通過ContentValues創建了一個容器,然後通過put()方法將數據添加到ContentValues容器中,最後通insert()方法再分配到數據表中。
返回的值是新創建的一行的id.
查詢數據
/**
* 查詢一條記錄是否存在
* @param name 姓名
* @return true 存在 false 不存在
* */
private boolean find(String name) {
SQLiteDatabase db = helper.getReadableDatabase();
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 新的電話號碼
* @return 返回受影響的記錄的條數
* */
private int updata(String name,String newNumber){
SQLiteDatabase db=helper.getWritableDatabase();
ContentValues values=new ContentValues();
values.put("number", newNumber);
int numbers=db.update("person", values, "name=?", new String[]{name});
db.close();
return numbers;
}
刪除數據
/**
* 刪除一條數據
* @param name 姓名
* */
private int del(String name){
SQLiteDatabase db=helper.getWritableDatabase();
int number=db.delete("person", "name=?", new String[]{name});
db.close();
return number;
}
/** * 返回全部的數據信息 * */ public ListfindAll(){ SQLiteDatabase db=helper.getReadableDatabase(); List persons=new ArrayList (); Cursor cursor=db.query("person", new String[]{"id","name","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 p=new Person(id, name, number); persons.add(p); } cursor.close(); db.close(); return persons;} }
所謂的事務處理就是保證操作的完整性,所有操作要麼同時成功,要麼同時失敗。
在SQLite中,事物的使用方法如下:
1、首先通過beginTransation()開始一個事物。
2、通過setTransactionSuccessful()設置一個事物成功的標志。
3、如果調用了以上第二步則成功地提交了事物,結束事物,否則回滾事物。方法為endTransaction().
比如:
db.beginTransaction();
try {
......//其他部分語句體
db.setTransactionSuccessful();
}finally{
db.endTransaction();
}
Android Studio使用小技巧:提取方法代碼片段
今天來給大家介紹一個非常有用的Studio Tips,有些時候我們在一個方法內部寫了過多的代碼,然後想要把一些代碼提取出來再放在一個單獨的方法裡,通常我們的做法是復制粘貼
手機丟了,換手機號,綁定的微信號該怎麼辦?
從5.0版本開始,微信只支持用手機號開通賬號,那麼問題來了,如果換了手機號,原來的微信是不是也作廢了?裡面的好友怎麼辦?還有我們的零錢啊!!不用著急,換號不
Android自定義可編輯、刪除的側滑LisitView
最近由於項目的需要,自定義了一個具有側滑功能的listview,側滑後可以點擊編輯、刪除。好了,大家先看一下效果圖,畢竟是看臉的世界。 好了,我要先講一下思路,
android 中實現圖片倒影效果
1、效果圖: 2、核心代碼: height) reflectionHeight = height; // 創建倒影圖片(