【安卓9】SQLiteOpenHelper 类、增删改操作

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代码
原文地址:https://www.cnblogs.com/leelee/p/7045099.html