Android——SQLite数据库(一)创建数据库、创建表、初始化数据

xml

 <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="创建数据库"
        android:id="@+id/bt_cjshujuku"
        android:onClick="chuangjiansjkonclick"/>

java

package com.example.chenshuai.test321;

import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;

public class Activitydatashujuku extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_activitydatashujuku);
    }

    /*操作数据库有两个非常重要的类:SQLiteDatabase和SQLiteOpenHelper
    * 1.SQLiteDatabase的实例便代表了SQLite数据库,通过SQLiteDatabase的一些常用方法,可以执行SQL语句,
    * 对数据库进行添加、删除、更新、查找和修改等操作
    * 2.SQLiteOpenHelper是一个辅助类,主要负责创建和打开数据库以及对数据库的版本进行管理。
    * SQLiteOpenHelper是一个抽象类,需要继承它并实现它的几个回调函数
    * */
   /*
    1.写内部类 继承SQLiteOpenHelper
    2.生成实现方法
      (1)创建  public void onCreate(SQLiteDatabase db) {
      (2)升级  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    3.生成器 调用父类的构造方法
     public DBHelper(String name, int version) {

    4.点击事件 调用构造方法DBHelper 创建 连接数据库
*/
    //内部类继承  需要自己生成构造器
    class DBHelper extends SQLiteOpenHelper
    {
        //构造方法
        //name 数据库名
        //version 自己定义的数据库的版本号
        public DBHelper(String name, int version) {

           //需要调用父类的构造方法 写在第一行
            super(Activitydatashujuku.this, name, null, version);
        }

        //实现方法  是一个回调方法
        //在创建数据库时调用
        //什么时候创建数据库:连接数据库的时候,如果数据库文件不存在
        //只调用一次
        @Override
        public void onCreate(SQLiteDatabase db) {

            //1.创建数据库的语句
            //构造建表语句
            String creaTTable = "create table user (_id integer PRIMARY KEY AUTOINCREMENT NOT NULL,name varchar,age int)";
            db.execSQL(creaTTable);

            //2.初始化参数 ContentValues
            ContentValues cv = new ContentValues();

            cv.put("name","tom");
            cv.put("age", "20");
            //返回id long型  如果不成功返回-1
            //1-表名
            //2-空列的默认值
            //3-字段和值的key/value集合
            Long l = db.insert("user", null, cv);
            Toast.makeText(Activitydatashujuku.this, "id="+l, Toast.LENGTH_LONG).show();

            //2.初始化数据

        }

        //升级数据库
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        }
    }

    //创建数据库
    public void chuangjiansjkonclick(View view)
    {
        //创建  实现工具类
        DBHelper dh = new DBHelper("test.db",1);

        //连接数据库 获取数据库实例
        //getWritableDatabase() 数据写满会报错
        //getReadableDatabase() 数据写满不会报错
        SQLiteDatabase sd = dh.getWritableDatabase();
        sd.close();
} }

原文地址:https://www.cnblogs.com/Chenshuai7/p/5383124.html