微信WCDB数据库基础使用-增删改查(直接上代码,没有废话)



import android.content.Context;

import com.tencent.wcdb.database.SQLiteDatabase;
import com.tencent.wcdb.database.SQLiteOpenHelper;
import java.io.File;
import hisign.com.wcdbdemo.utils.LogUtil;

/**
 * 简单的Helper
 */
public class PersonDBHelper extends SQLiteOpenHelper {
    // 数据库 db 文件名称
    private static final String DEFAULT_NAME = "person.db";

    // 默认版本号
    private static final int DEFAULT_VERSION = 2;

    private Context mContext;

    /**
     * 通过父类构造方法创建 person 数据库
     */
    public PersonDBHelper(Context context) {
        super(context, DEFAULT_NAME, null, DEFAULT_VERSION, null);
        this.mContext = context;
    }
    public PersonDBHelper(Context context, byte[] password) {
        super(context,DEFAULT_NAME,password,null,DEFAULT_VERSION,null);
        this.mContext = context;
    }
    /**
     * 表创建
     */
    @Override
    public void onCreate(SQLiteDatabase db) {
        final String SQL_CREATE = "CREATE TABLE IF NOT EXISTS person (_id INTEGER PRIMARY KEY AUTOINCREMENT , name VARCHAR(20) , address TEXT)";
        db.execSQL(SQL_CREATE);
    }

    /**
     * 版本升级
     */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO
        LogUtil.logI("数据库版本"+oldVersion);
        LogUtil.logI("数据库新版本"+newVersion);
    }

    /**
     * 删除数据库 db 文件
     */
    public boolean onDelete() {
        File file = mContext.getDatabasePath(DEFAULT_NAME);
        return SQLiteDatabase.deleteDatabase(file);
    }
}


import android.content.ContentValues;
import android.content.Context;

import com.tencent.wcdb.Cursor;
import com.tencent.wcdb.database.SQLiteDatabase;

import java.util.ArrayList;
import java.util.List;

import hisign.com.wcdbdemo.model.Person;
import hisign.com.wcdbdemo.utils.LogUtil;

public class PersonDBManager {
    private PersonDBHelper mDBHelper;
    private SQLiteDatabase mDB;

    public PersonDBManager(Context context) {
//        mDBHelper = new PersonDBHelper(context);//没有加密
        mDBHelper = new PersonDBHelper(context, "1234".getBytes());//加密
        mDB = mDBHelper.getWritableDatabase();
    }

    /**
     * 插入数据
     *
     * @param person
     */
    public boolean addPersonData(Person person) {
        try {
            // 开启事务
            mDB.beginTransaction();

            // 执行插入语句
            final String sql = "INSERT INTO person VALUES(NULL,?,?)";
            Object[] objects = new Object[]{person.getName(), person.getAddress()};
            mDB.execSQL(sql, objects);

            // 设置事务完成成功
            mDB.setTransactionSuccessful();
        }catch (Exception e){
            return false;
        }finally {
            // 关闭事务
            mDB.endTransaction();
        }
        return true;
    }

    /**
     * 批量插入数据
     *
     * @param list
     * @return
     */
    public boolean addPersonList(List<Person> list) {
        try {
            // 开启事务
            mDB.beginTransaction();

            // 执行插入语句
            for (Person person : list) {
                Object[] objects = new Object[]{person.getName(), person.getAddress()};
                final String sql = "INSERT INTO person VALUES(NULL,?,?)";
                mDB.execSQL(sql, objects);
            }

            // 设置事务完成成功
            mDB.setTransactionSuccessful();
        } catch (Exception e) {
            return false;
        } finally {
            // 关闭事务
            mDB.endTransaction();
        }
        return true;
    }

    /**
     * 删除特定姓名的人员数据
     * @param name
     * @return
     */
    public boolean delPersonByName(String name) {
        try {
            // 开启事务
            mDB.beginTransaction();
            mDB.delete("person","name=?",new String[]{name});
            // 设置事务完成成功
            mDB.setTransactionSuccessful();
        } catch (Exception e) {
            return false;
        } finally {
            // 关闭事务
            mDB.endTransaction();
        }
        return true;
    }

    /**
     * 通过姓名获取数据库数据
     * @param name
     * @return
     */
    public List<Person> getPersonByName(String name){
        ArrayList<Person> persons = new ArrayList<>();
        String sql = "select * from
在Android Studio中创建一个简单的记事本应用并利用wcdb作为数据库管理系统,可以分为以下几个步骤: 1. **添加依赖**: 首先,你需要在项目中引入wcdb库。如果你的项目是基于Gradle管理依赖的,可以在`build.gradle(Module)`文件中添加: ``` implementation 'com.wcdb:wcdc:3.x.x' ``` 2. **创建数据库**: 使用wcdb的API,你可以创建一个SQLite数据库。在你的`MainActivity.java`或其他合适的类里,初始化数据库并创建表,例如: ```java WritableDatabase db = WritableDatabase.getInstance(this); db.execSQL("CREATE TABLE IF NOT EXISTS notes (id INTEGER PRIMARY KEY AUTOINCREMENT, content TEXT)"); ``` 3. **CRUD操作**: - **插入数据**: 添加新笔记时,使用`insert()`方法,如 `db.insert("notes", null, values);` - **读取数据**: 查询特定条目,可以用`query()`方法,比如 `Cursor cursor = db.query("notes", projection, selection, null, null, null, sortOrder);` - **更新数据**: 更新已有记录,使用`update()`方法,如 `int affectedRows = db.update("notes", contentValues, selection, null);` - **删除数据**: 删除一条记录,通过`delete()`方法,如 `int deletedRows = db.delete("notes", selection, null);` 4. **UI交互**: 在Activity或Fragment中,你可以使用SQLiteOpenHelper提供的适配器(如`SimpleSQLiteAdapter`)来绑定数据库结果到列表视图,用户交互时触发对应的数据库操作。 5. **保存和关闭数据库**: 记得在每次操作完成后关闭数据库连接,`db.close();` 记得处理好异常和事务以保证数据的一致性和完整性。这是基础版的简单示例,实际应用中可能需要更复杂的错误处理和界面设计。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值