1. 程式人生 > 實用技巧 >資料庫基礎開源學習教程-android 使用 litepal 操作本地資料庫

資料庫基礎開源學習教程-android 使用 litepal 操作本地資料庫

<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/LearnMysql" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

說明

android手機自帶本地資料庫SQLite ,操作本地資料庫android給了api

不過這節的重點是講解如何使用 郭霖(第一行程式碼) 寫的litepal 操作資料庫

在使用litepal之前,咱們先看下使用android 自帶的api操作資料庫

開啟本節程式碼

1.使用者可以去百度了...這是Android api操作資料庫最基本的規定

public class DataBase extends SQLiteOpenHelper {
    private final static String TABLE_NAME = "MyTable";//表格名字
    private final static String ID = "id"; //第一個欄位
    private SQLiteDatabase db = null;
    public final static String UserName = "name";//第二個欄位
public DataBase(Context context, String DATABASE_NAME, int DATABASE_VERSION) { super(context,DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub String sql = "CREATE TABLE " + TABLE_NAME + " (" + ID
+ " INTEGER primary key autoincrement, " + UserName + " text "+ ")"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub String sql = "DROP TABLE IF EXISTS " + TABLE_NAME; db.execSQL(sql); onCreate(db); } /** * insert data * @param name * @return */ public long insert(String name) { db = getWritableDatabase(); /* ContentValues */ ContentValues cv = new ContentValues(); cv.put(UserName, name); long row = db.insert(TABLE_NAME, null, cv); db.close(); return row; } /** * delete data * @param name * @return */ public long delete(String name) { db = getWritableDatabase(); String where = UserName + " = ?"; String[] whereValue ={name}; long row = db.delete(TABLE_NAME, where, whereValue); db.close(); return row; } /** * query data * @param name * @return */ public Cursor query(String name) { db = getWritableDatabase(); Cursor cursor = null; String str = null; str = "select "+name +" from "+ TABLE_NAME; cursor = db.rawQuery(str,null); return cursor; } }

2.上面的程式是生成這樣一張表格

3.插入資料

4.刪除資料

5.查詢資料

使用

接著看litepal

1.把jar包引入自己工程

我使用的是2.0版本

2.建一個java檔案,繼承LitePalSupport

public class DataBaseLitepal extends LitePalSupport {
    private  int id;//ID
    private  String UserName;//使用者名稱
    private  String UserPwd;//密碼public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUserName() {
        return UserName;
    }
    public void setUserName(String userName) {
        UserName = userName;
    }
    public String getUserPwd() {
        return UserPwd;
    }
    public void setUserPwd(String userPwd) {
        UserPwd = userPwd;
    }
}

上面的意思是建一張這樣的表格

3.在assets資料夾裡面建一個litepal.xml檔案

如果沒有 assets 資料夾,建一個資料夾,assets 是放android資源的資料夾

<mapping class="com.example.myapplication.myapplicationlitepal.DataBaseLitepal"></mapping>

裡面的calss需要寫全路徑.

<?xml version="1.0" encoding="utf-8"?>
<litepal>
    <!-- 資料庫名 -->
    <dbname value="Testlitepal" ></dbname>
    <!-- 資料庫版本 -->
    <version value="1" ></version>

    <!--資料庫檔案路徑,把所有的資料庫檔案放到此處 -->
    <list>
        <mapping class="com.example.myapplication.myapplicationlitepal.DataBaseLitepal"></mapping>
    </list>
</litepal>

4.初始化

1.建一個MyApplication 繼承Application

在 onCreate 裡面寫上下面兩句

注:Application onCreate 是程式一啟動就執行的函式,目的是讓litepal第一時間初始化

如果自己有了Application,只需要新增下面兩句即可

/*=================litepal資料庫=====================*/
        LitePal.initialize(this);
        //獲取到SQLiteDatabase的例項,建立資料庫表
        SQLiteDatabase db = LitePal.getDatabase();

2.在AndroidManifest.xml 檔案中配置下

5.新增和查詢資料

/*新增資料*/
        DataBaseLitepal dataBaseLitepal = new DataBaseLitepal();
        dataBaseLitepal.setUserName("yang");
        dataBaseLitepal.setUserPwd("11223344");
        dataBaseLitepal.save();
        /*查詢資料*/
        List<DataBaseLitepal> allSongs = LitePal.where("UserName=?","yang").find(DataBaseLitepal.class);
        for (DataBaseLitepal dataBaseLitepal1 :allSongs) {
            int id = dataBaseLitepal1.getId();
            String UserName = dataBaseLitepal1.getUserName();
            String UserPwd = dataBaseLitepal1.getUserPwd();
            Log.d("MainActivity",id+" "+ UserName+ " " + UserPwd);
        }

6.修改和刪除資料

/*修改資料:把使用者yang的密碼改為1234567890*/
        ContentValues values = new ContentValues();
        values.put("UserPwd","1234567890");
        int updateAllNum = LitePal.updateAll(DataBaseLitepal.class,values,"UserName =  ? ","yang");
        /*查詢資料*/
        List<DataBaseLitepal> dataBaseLitepals = LitePal.where("UserName=?","yang").find(DataBaseLitepal.class);
        for (DataBaseLitepal dataBaseLitepal1 :dataBaseLitepals) {
            int id = dataBaseLitepal1.getId();
            String UserName = dataBaseLitepal1.getUserName();
            String UserPwd = dataBaseLitepal1.getUserPwd();
            Log.d("MainActivity修改後查詢",id+" "+ UserName+ " " + UserPwd);
        }
        /*刪除使用者名稱為yang,密碼為1234567890的資料 */
        int delAllNum = LitePal.deleteAll(DataBaseLitepal.class,"UserName = ? and UserPwd = ? ","yang","1234567890");

7.更新資料庫

1.假設後期專案需求增加了手機號

2.在litepal設定一個新版本即可

補充

1.查詢所有資料

List<DataBaseLitepal> findData = LitePal.findAll(DataBaseLitepal.class);