zoukankan      html  css  js  c++  java
  • 【安卓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代码
  • 相关阅读:
    切换JDK版本时修改JAVA_HOME环境变量不生效
    Java项目如何生成可执行jar包、exe文件
    Java去除字符串中空格的方法详解
    JAVA SWT的MessageBox对话框
    Java秒杀实战 (六) 服务级高并发秒杀优化(RabbitMQ+接口优化)
    DOM Event reference
    Chrome和Firefox的event显示
    What Causes Stock Prices to Change?
    Declaring variables without var keyword
    Do I have to return something in javascript function?
  • 原文地址:https://www.cnblogs.com/leelee/p/7045099.html
Copyright © 2011-2022 走看看