SQLiteOpenHelper 类
SQLiteOpenHelper类是Android提供的用于操作SQLite数据库的工具类,该工具类能方便地创建数据库、表,以及管理数据库版本。
常用方法
1、 synchronized SQLiteDatabase getReadableDatabase();
作用:以读写的方式打开数据库对应的SQLiteDatabase类的对象
2、 synchronized SQLiteDatabase getWriteableDatabase();
作用:以写的方式创建或打开库对应的SQLiteDatabase类的对象
3、 abstract onCreate(SQLiteDatabase db);
作用:首次创建数据库时调方法。
4、 abstract onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion);
作用:数据库版本更新时调方法。
5、 synchronized void close();
作用:关闭所有打开的SQLiteDatabase对象。
增、删、改操作【定义MySQLiteOpenHelper】
1 public class MySQLiteOpenHelper extends SQLiteOpenHelper{ 2 /**重写父类构造方法*/ 3 public MySQLiteOpenHelper(Context context) { 4 //创建指定数据库:Activity对象,数据库文件名,游标工厂,数据库版本号 5 super(context,"person.db",null,1); 6 } 7 /**只在第一次创建数据库时调用,数据库只用在调用 8 getWritableDatabase 时候才会真正被调用 */ 9 public void onCreate(SQLiteDatabase db) { 10 db.execSQL("create table if not exists person(" 11 +"pid integer primary key autoincrement," 12 +"name varchar(20),"+"phone varchar(12));"); 13 } 14 /**修改表结构,数据库版本更新时调用*/ 15 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 16 } 17 /**向数据库插入数据*/ 18 public void insert(String sql,String [] args){ 19 //创建对象,以写方式打开数据库 20 SQLiteDatabase db=this.getWritableDatabase(); 21 db.execSQL(sql,args); 22 } 23 /**删除数据库中的数据*/ 24 public void delete(String sql,String [] args){ 25 SQLiteDatabase db=this.getWritableDatabase(); 26 db.execSQL(sql,args); 27 } 28 /**更新数据库中的数据*/ 29 public void update(String sql,String [] args){ 30 SQLiteDatabase db=this.getWritableDatabase(); 31 db.execSQL(sql,args); 32 } 33 }
MySQLiteOpenHelper类代码
1 public class Main extends Activity implements OnClickListener{ 2 private Button save; //插入数据按钮 3 private Button delete; //删除数据按钮 4 private Button update; //更新数据按钮 5 public void onCreate(Bundle savedInstanceState) { 6 super.onCreate(savedInstanceState); 7 setContentView(R.layout.main); 8 save=(Button)findViewById(R.id.save); 9 delete=(Button)findViewById(R.id.delete); 10 update=(Button)findViewById(R.id.update); 11 save.setOnClickListener(this); 12 delete.setOnClickListener(this); 13 update.setOnClickListener(this); 14 } 15 public void onClick(View v) { 16 MySQLiteOpenHelper db=new MySQLiteOpenHelper(Main.this); 17 switch(v.getId()){ 18 case R.id.save: 19 db.insert("insert into person(name) values(?)",new String[]{"张飞"}); 20 Toast.makeText(this,"插入成功",3000).show(); 21 break; 22 case R.id.delete: 23 db.insert("delete from person where id=?",new String[]{"1"}); 24 Toast.makeText(this,"删除成功",3000).show(); 25 break; 26 case R.id.update: 27 db.insert("update person set name=? where id=1",new String[]{"关羽"}); 28 Toast.makeText(this,"更新成功",3000).show(); 29 break; 30 } 31 } 32 }
Activity代码
时间: 2024-11-07 03:47:45