android 建数据库的正确写法

新建一个类叫XXXContract,并在类里面静态内部类继承BaseColumn,在内部类中写建表的名字和表的列名,因为BaseColumns类里面封装了一个_ID和_count,所以ID就不需要我们自己定义了.如下代码所示:

public class PersonContract {
    public static class Person implements BaseColumns{
        public static final String TABLE_NAME="person";
        public static final String COLUMNS_NAME="name";
        public static final String COLUMNS_NUMBER="number";
    }
}

 在继承了SQLiteOpenHelper类中的onCreate方法中 用新建类的数据代替SQL语句中相关的数据 

db.execSQL("create table "+ PersonContract.Person.TABLE_NAME+
                " ("+PersonContract.Person._ID
                +" integer primary key autoincrement,"+
                PersonContract.Person.COLUMNS_NAME+" varchar(20),"+
                PersonContract.Person.COLUMNS_NUMBER+" varchar(20)" +
                ")");

 原先的代码是以下这样的,如果要改动的话会很麻烦也很会出错

db.execSQL("create table person (_id integer primary key autoincrement,name varchar(20),number varchar(20))");

 小注意:只有在调用openHelper时才会创建数据库,只是new 出SQLiteOpenHelper 的实例时不会创建数据库

原文地址:https://www.cnblogs.com/IT-lss/p/5671408.html