xml
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();
} }