zoukankan      html  css  js  c++  java
  • 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();
    } }

  • 相关阅读:
    洛谷3703 [SDOI2017] 树点染色 【LCT】【线段树】
    BZOJ4818 [SDOI2017] 序列计数 【矩阵快速幂】
    HDU4625 JZPTREE 【树形DP】【第二类斯特林数】
    LOJ2116 [HNOI2015] 开店 【点分治】
    [NOIP2017] 逛公园 【最短路】【强连通分量】
    css
    html
    spring-springmvc-jdbc小案例
    eclipse myeclipse中的一些配置
    springmvc中的一些服务器报错
  • 原文地址:https://www.cnblogs.com/Chenshuai7/p/5383124.html
Copyright © 2011-2022 走看看