数据库和表的创建(SQLiteOpenHelper)

Posted 懂你在爱我

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库和表的创建(SQLiteOpenHelper)相关的知识,希望对你有一定的参考价值。

1.android为了让我们能够更加方便地管理数据库,专门提供了一个SQLiteOpenHelper帮助类,借助这个类就可以非常简单地对数据库进行创建和升级。SQLiteOpenHelper是一个抽象类,如果想使用它的话,就要创建一个自己的帮助类(这里我们以自己创建的mysqliteHelper类去继承)去继承它。SQLiteOpenHelper中有两个抽象方法,分别是onCreate()和onUpgrade(),我们必须在自己的帮助类里面重写这两个方法,然后在这两个方法中实现创建、升级数据库的逻辑。
2.为了以后方便修改数据库名,表名及相关字段,专门创建一个常量类(Constant)进行管理。专门创建一个类(DbManger)进行对数据库操作的工具栏。在MainActivity类中通过点击按钮来创建数据库和表。
3.<1>MySqliteHelper类代码:

 

public class MySqliteHelper extends SQLiteOpenHelper {
    public MySqliteHelper(Context context) {
        super(context, Constant.DATABASE_NAME, null, Constant.DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        //创建表结构
        String sql = "create table "+Constant.TABLE_NAME+"("+
                Constant.ID+" integer primary key autoincrement,"+
                Constant.NAME+" varchar(20)," +
                Constant.AGE+" integer)";
        sqLiteDatabase.execSQL(sql);//执行sql语句

    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }
}

<2>Constant类代码:

public class Constant {
    public static final String DATABASE_NAME = "info.db";//数据库名称
    public static final int DATABASE_VERSION = 1;//数据库版本号
    public static final String TABLE_NAME = "person";//表名
    public static final String ID = "id";//表字段
    public static final String NAME = "name";//表字段
    public static final String AGE = "age";//表字段

}

<3>DbManger类代码:

/**
 * Created by lance on 2017/2/27.
 * 主要是对数据库操作的工具栏
 */

public class DbManger {
    private static MySqliteHelper mMySqliteHelper;
    public static MySqliteHelper getIntance(Context context){
        if(mMySqliteHelper == null){
            mMySqliteHelper = new MySqliteHelper(context);
        }
        return mMySqliteHelper;
    }
}

<4>MainActivity类代码:

public class MainActivity extends AppCompatActivity {
    private Button mDbButton;
    private MySqliteHelper mMySqliteHelper;
    private SQLiteDatabase db;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mMySqliteHelper = DbManger.getIntance(MainActivity.this);
        mDbButton = (Button) findViewById(R.id.create_db);
        /**
         * 点击按钮创建数据库
         */
        mDbButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                /*
                getReadableDatabase()和getWritableDatabase()都是创建或打开数据库
                如果数据库不存在则创建数据库,如果数据库存在直接打开数据库
                默认情况下这两个函数都表示打开或创建可读可写的数据库对象,如果磁盘已满或者是
                数据库本身权限等情况下getReadableDatabase()打开的是只读数据库
                 */
                db = mMySqliteHelper.getWritableDatabase();
            }
        });
    }
}

 



以上是关于数据库和表的创建(SQLiteOpenHelper)的主要内容,如果未能解决你的问题,请参考以下文章

SQLiteOpenHelper 调用 onCreate 失败?

经典解密数据库和表的创建

实验二 数据库和表的创建与管理

MySQL 创建数据库和表的编码设置

创建数据库和表的SQL语句

创建数据库和表的SQL语句