Android学习 | SQLite创建数据库

新建一个SQLiteDemo项目:

我们希望创建一个名为BookStore.db的数据库, 然后在数据库中新建一张Book表, 其中有id(主键), 作者, 价格,页数和书名. SQL建表语句如下:

新建一个创建表的Java类:

public class MyDatabaseHelper extends SQLiteOpenHelper {
    private Context mContext;
    
    //我们希望创建一个名为BookStore.db的数据库, 然后在数据库中新建一张Book表, 其中有id(主键), 作者, 价格,页数和书名. SQL建表语句如下:
    /****
     *  integer: 表示整型;
     *  real: 表示浮点型;
     *  text: 表示文本型;
     *  blob:表示二进制类型
     *  primary key: 表示主键;
     *  autoincrement: 表示自增长
     */

    public static final String CREATE_BOOK = "create table Book (" +
            "id integer primary key autoincrement, " +
            "author text, " +
            "price real, " +
            "page integer, " +
            "name text)";

    public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
        mContext = context;
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_BOOK);
        Toast.makeText(mContext, "创建数据库成功", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}

然后我们在主页布局文件中, 添加一个按钮, 用于创建数据库.
activity_main.xml:


修改MainActivity中的代码:

public class MainActivity extends AppCompatActivity {
    private MyDatabaseHelper dbHelper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //MyDatabaseHelper的参数分别为:上下文, 数据库名为BookStore.db, CursorFactory为null, 版本号为1
        dbHelper = new MyDatabaseHelper(this, "BookStore.db", null, 1);
        Button createDatabase =  (Button)findViewById(R.id.create_database);
        createDatabase.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                /**
                 * getWritableDatabase:表示可以创建或打开一个现有的数据库(如果数据库已经存在则直接打开, 
                 *  否则创建一个新的数据库), 并返回一个对数据库进行读写操作的对象
                 *  getReadableDatabase:同上, 但是如果出现不可写入, 比如磁盘满了, 此方法返回的对象以只读的方式打开
                 *  而getWritableDatabase则会抛出异常.
                 *  
                 */
                dbHelper.getWritableDatabase();
            }
        });
        
        
    }
}
Android学习 | SQLite创建数据库_第1张图片

你可能感兴趣的:(Android学习 | SQLite创建数据库)