package com.lidaochen.phonecall; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class MyOpenHelper extends SQLiteOpenHelper { /** * * @param context 上下文 * name:数据库的名字 * factory 目的创建cursor对象 * * version 数据库的版本 从1开始 */ public MyOpenHelper(Context context) { super(context, "liDaochen.db", null, 4); } /** * Called when the database is created for the first time. * 当数据库第一次创建的时候调用 * 那么这个方法特别适合做表结构的初始化 创建表就是写sql语句 */ @Override public void onCreate(SQLiteDatabase db) { // id 一般以_id db.execSQL("create table info(_id integer primary key autoincrement,name varchar(20),phone varchar(20))"); } /** * Called when the database needs to be upgraded * 当数据库版本升级的时候调用 * * 这个方法适合做 表结构的更新 */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVwesion) { db.execSQL("alter table info add phone varchar(20)"); } }
package com.lidaochen.phonecall; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; 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(getApplicationContext()); } // 打开或者创建数据库 如果是第一次就创建 // SQLiteDatabase db = myOpenHelper.getWritableDatabase(); // 打开或者创建数据库 如果是第一次就创建 如果磁盘满了就返回只读的 // SQLiteDatabase sqLiteDatabase = myOpenHelper.getReadableDatabase() // 点击按钮增加一条记录 public void add(View v) { // 获取数据库对象 SQLiteDatabase db = myOpenHelper.getWritableDatabase(); // 执行增加一条sql语句 db.execSQL("insert into info(name,phone) values(?,?)", new Object[]{"张三", "13888888"}); // 数据库用完需要关闭 db.close(); } // 删除 public void delete(View v) { // 获取数据库对象 SQLiteDatabase db = myOpenHelper.getWritableDatabase(); // 执行删除一条sql语句 db.execSQL("delete from info where name=?", new Object[]{"张三"}); // 数据库用完需要关闭 db.close(); } // 更新 public void update(View v) { // 获取数据库对象 SQLiteDatabase db = myOpenHelper.getWritableDatabase(); // 执行删除一条sql语句 db.execSQL("update info set phone=? where name=? ", new Object[]{"138888888", "张三"}); // 数据库用完需要关闭 db.close(); } // 查找 public void find(View v) { // 获取数据库对象 SQLiteDatabase db = myOpenHelper.getWritableDatabase(); Cursor cursor = db.rawQuery("select * from info", null); if (cursor != null && cursor.getCount() > 0) { while (cursor.moveToNext()) { // columnIndex代表列的索引 String name = cursor.getString(1); String phone = cursor.getString(2); System.out.println(name + ": " + phone); } } } }