个人学习是的笔记
先写一个类继承 SQLiteOpenHelper
然后实现它的构造方法 如下:
public class MyOpenHelper extends SQLiteOpenHelper { /** * @param context * @param name 数据库文件名字 在内存中创建一个数据库,临时用一下则可以传null * @param factory 传null * @param version 数据库版本号从1开始 */ public MyOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); } /** * @param db * s数据库第一次创建时调用 * 这里进行表结构创建,数据初始化 * _id sqlite种的id这一列字段名一般为_id * sqlite数据库存的都是字符串 * 表的修改都在这里操作, */ @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table info(_id integer primary key autoincrement,name varchar(20),phone varchar(20))"); } /** * @param db * @param oldVersion * @param newVersion * CURD * 表的修改都在这里操作,数据库版本越来越高 */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("alter table info add age integer");//增加表字段 } /** * @param db * @param oldVersion * @param newVersion *执行数据库版本降级 数据库版本越来越低 */ @Override public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) { // super.onDowngrade(db, oldVersion, newVersion); //不注释掉会抛异常 } } 在MainActivity中实现该类的对象以及进行基本的CRUDpackage com.example.zhongtao.day02; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; //android下的数据库SQLITE //局部变量变为全局变量 ctrl alt F public class MainActivity extends AppCompatActivity { private MyOpenHelper myOpenHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myOpenHelper = new MyOpenHelper(this,"itheima",null,1); //此处如果版本没有变则不会执行onUpgrade这里的插入的错误就会出现 //数据库文件不存在时或者打开一个数据库时 // SQLiteDatabase database= myOpenHelper.getReadableDatabase(); //当磁盘满了时返回一个只读的数据库 而getWritableDatabase();会报错 // SQLiteDatabase database=myOpenHelper.getWritableDatabase(); } public void insert(View view){ SQLiteDatabase database= myOpenHelper.getReadableDatabase(); String sql="insert into info (name,phone,age) values('zhangsan,'123213123','33')"; database.execSQL(sql); database.close(); } public void delete(View view){ } public void select(View view){ SQLiteDatabase database=myOpenHelper.getWritableDatabase(); String sql="select * from info"; Cursor cursor=database.rawQuery(sql,null); while (cursor.moveToNext()) { // cursor.getColumnCount(); String name=cursor.getString(1); //通过索引获取 String phone=cursor.getString(cursor.getColumnIndex("phone"));//通过字段名获取 System.out.println("name="+name); System.out.println("phone="+phone); } database.close(); } public void update(View view){ } }