Android学习之SqliteOpenHelper

引言

因为之前没有相关经验,导致看视频理解写代码略有困难,

这将导致代码会很容易遗忘,毕竟不是自己写出来的,做个笔记加深印象

创建类及初始化

新建一个类,继承SQLiteOpenHelper,重写onCreateonUpgrade方法

添加基本配置信息

private static final String DB_NAME = "user.db";//数据库文件名
private static final String TABLE_NAME = "user_info";//表单名
private static final int DB_VERSION = 1;//数据库版本号

使用单例模式,将构造方法用private修饰,调用父类构造方法

private static UserDBHelper mHelper = null;

    private UserDBHelper(Context context)
    {
        super(context,DB_NAME,null,DB_VERSION);
    }

获取对象实例的方法


    public static UserDBHelper getInstance(Context context)
    {
        if (mHelper == null)
        {
            mHelper = new UserDBHelper(context);
            //为什么要传context
            //因为SQLiteOpenHelper要求传context,而UserDBHelper类调用了父类构造方法
        }
        return mHelper;

    }

创建数据库后执行sql命令

    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "CREATE TABLE IF NOT EXISTS "+TABLE_NAME+" (" +
                "_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," +
                " name VARCHAR NOT NULL," +
                " age INTEGER NOT NULL," +
                " height LONG NOT NULL," +
                " weight FLOAT NOT NULL," +
                " married INTEGER NOT NULL);";
        db.execSQL(sql);

    }

这样初始化好了

创建读写连接

添加变量

    private SQLiteDatabase mRDB = null;
    private SQLiteDatabase mWDB = null;

读写连接方法

    public SQLiteDatabase openReadLink() {
        if (mRDB == null || !mRDB.isOpen()) {
            mRDB = mHelper.getReadableDatabase();

        }
        return mRDB;
    }
    public SQLiteDatabase openWriteLink() {
        if (mWDB == null || !mWDB.isOpen()) {
            mWDB = mHelper.getWritableDatabase();
        }
        return mWDB;
    }

关闭读写连接

    public void closeLink()
    {
        if (mRDB != null && mRDB.isOpen())
        {
            mRDB.close();
            mRDB = null;
        }
        if (mWDB != null && mWDB.isOpen())
        {
            mWDB.close();
            mWDB = null;
        }

    }

我感觉可以理解为关闭数据库,将数据库变量重置为null

写入的方法

自定义一个user类

public class User {

    public int id;

    public String name;
    public int age;
    public long height;
    public double weight;
    public boolean married;

    public User() {
    }

    public User(String name, int age, long height, double weight, boolean married) {
        this.name = name;
        this.age = age;
        this.height = height;
        this.weight = weight;
        this.married = married;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", height=" + height +
                ", weight=" + weight +
                ", married=" + married +
                '}';
    }
}

    public long insert(User user)
    {
        ContentValues values = new ContentValues();
        values.put("name",user.name);
        values.put("age",user.age);
        values.put("height",user.height);
        values.put("weight",user.weight);
        values.put("married",user.married);

       return mWDB.insert(TABLE_NAME,null,values);
       //返回的是序号,类似于...操作顺序???如果写入失败将返回-1
    }

写入(SqliteHelperActivity.java

初始化user

User user = null;
    user = new User(name,
                    Integer.parseInt(age),
                    Long.parseLong(height),
                    Double.parseDouble(weight),
                    married);
    if (mHelper.insert(user) > 0)
    {
        ToastUtil.show(this,"添加成功");

    }

结束语

没有jdbc基础感觉真的好难,希望坚持下去,背也得背下捏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值