SQLiteDatabase

DbUtils

public class DbUtils{
    public static final String DATABASE_NAME="info";  //数据库名称
    public static final int DATABASE_VERSION=1;  //数据库版本
    public static final String TABLE_NAME="student";  //创建表名
    public static final String STUDENT_ID="_id";  //表 _id 字段
    public static final String STUDENT_NAME="name";  //表name字段
    public static final String STUNDENT_AGE="age";  //表age 字段
}

MySqliteHelper

public class MySqliteHelper extends SQLiteOpenHelper{

    private static String TAG="MySqliteHelper";

    public MySqliteHelper(Context context,String name,CursorFactory factory,int version){
        super(context,name,factory,version);
    }

    public MySqliteHelper(Context context){
        super(context,DbUtils.DATABASE_NAME,null,DbUtils.DATABASE_VERSION);
    }

    /**
    表示当前数据库被创建时回调的方法
    数据库创建的同时创建数据表student
    */
    public void onCreate(SQLiteDatabase db){
        String sql = "create table "+DbUtils.TABLE_NAME+"("+DbUtils.STUDENT_ID+" integer primary key,"+DbUtils.STUDENT_NAME+" varchar(10),"+DbUtils.STUNDENT_AGE+" integer";
        db.execSQL(sql);
    }
    /**
    表示数据库版本发生改变时回调的方法
    */
    public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion){
        if(newVersion>oldVersion){
            //版本更新后的具体操作
            //TODO  待实现
        }
    }
    /**
    表示数据库被打开时回调的方法
    */
    public void onOpen(SQLiteDatabase db){
        super.onOpen(db);
    }
}

DbManager

public class DbManager{
    //获取helper对象的方法
    public static MySqliteHelper getInstance(Context context){
        if(helper==null){
            helper = new MySqliteHelper(context);
        }
        return helper;
    }
    /**
    根据传递的sql语句指定相应的操作
    */
    public static void execuDataSql(SQLiteDatabase db,String sql){
        if(db!=null){
            if(!"".equals(sql)&&sql!=null){
                db.execSQL(sql);
            }
        }
    }
    /**
    采用api中提供的方法插入数据
    */
    public static long insertData(SQLiteDatabase db,String table,String nullColumnHack,ContentValues values){
        long count=0;
        if(db!=null){
            count = db.insert(table,nullColumnHack,values);
        }   
        return count;
    }
    /**
    采用api提供的方法修改数据
    */
    public static int updateData(SQLiteDatabase db,String table,ContentValues values,String whereClause,String[] whereArgs){
        int count=0;
        if(db!=null){
            count = db.update(table,values,whereClause,whereArgs);
        }
        return count;
    }
    /**
    采用api方法删除数据
    */
    public static int deleteData(SQLiteDatabase db,String table,String whereClause,String[] whereArgs){
        int count = 0;
        if(db!=null){
            count = db.delete(table,whereClause,whereArgs);
        }
        return count;
    }
    /**
    关闭指定的数据库
    */
    public static void closeDb(SQLiteDatabase db){
        if(db!=null){
            db.close();
        }
    }
}

MainActivity

public class MainActivity extends Activity{

    private MySqliteHelper helper;

    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        helper = DbManger.getInstance(MainActivity.this);
    }
    // 点击按钮创建数据库
    public void create_database(View view){
        /*
        调用helper类的getReadableDatabse() getWriteableDatabase()创建或者打开数据库  获取数据库对象
        如果该数据库不存在则创建,如果该数据库存在则打开数据库
        getReadableDatabase() getWriteableDatabase() 默认情况下返回的都是可读可写的数据库对象
        如果出现一些问题例如磁盘已满或者是数据库本身是只读权限getReadableDatabase()方法返回的就是只读的数据库对象
        */
        SQLiteDatabase db= helper.getReadableDatabase();
    }
    //根据点击的按钮执行相应的增删改操作
    public void click(View view){
        switch(view.getId()){
            case R.id.button_insert:
                SQLiteDatabase db =helper.getWritableDatabase(); //打开数据库
                //对数据库操作
                String sql = "insert into "+Dbutils.TABLE_NAME+" values(1,'zhangsan',30)";
                DbManger.execDataSql(db,sql);
                String sql2 = insert into "+Dbutils.TABLE_NAME+" values(2,'lisi',26)";
                Dbutils.execDataSql(db,sql2);
                //关闭数据库
                DbManger.closedDb(db);
                break;
            case R.id.button_update://点击按钮完成修改数据
                db =helper.getWritableDatabase();
                String sql3 = "update from "+Dbutils.TABLE_NAME+" where "+Dbutils.STUDENT_ID+"=1";
                DbManger.execDataSql(db,sql3);
                DbManger.closedDb(db);
                break;
            case R.id.button_delete://点击按钮删除数据
                db = helper.getWritableDatabase();
                String sql4="delete from "+Dbutils.TABLE_NAME+" where "+Dbutils.STUDENT_ID+" =1";
                DbManger.execDataSql(db,sql4);
                DbManger.closedDb(db);
                break;
        }
    }
    /**
    采用api提供的方法增删改操作数据表
    */
    public void onClick(View view){
        switch(view.getId()){
            case R.id.button_apiinsert: //点击按钮采用api形式插入数据
                SQLiteDatabase db=helper.getWritableDatabase();
                ContentValues values=new ContentValues();
                values.put(Dbutils.STUDENT_ID,3); //put(表示当前插入数据表的字段,表示当前插入key指定字段的值)
                values.put(Dbutils.STUDENT_NAME,"小鹿");
                values.put(Dbtils.STUDENT_AGE,23);
                long count=DbManger.insertData(db,Dbutils.TABLE_NAME,null,values);
                if(count>0){
                    Toast.makeText(MainActivity.this,"插入数据成功",Toast.LENGTH_SHORT).show();
                }else{
                    Toast.makeText(MainActivity.this,"插入数据失败",Toast.LENGTH_SHORT).show();
                }
                DbManger.closeDb(db);
                break;
            case R.id.button_apiupdate:  // 点击按钮采用api形式修改数据
                db = helper.getWritableDatabase();
                ContentValues values2=new ContentValues();
                values2.put(Dbutils.STUDENT_NAME,"心心");
                values2.put(Dbutils.STUDENT_AGE,2);
                int count1=DbManger.updateData(db,Dbutils.TABLE_NAME,values2,""+Dbutils.STUDENT_ID+"=?",new String[]{"3"});
                if(count>0){
                    Toast.makeText(MainActivity.this,"修改数据成功",Toast.LENGTH_SHORT).show();
                }else{
                    Toast.makeText(MainActivity.this,"修改数据失败",Toast.LENGTH_SHORT).show();
                }
                DbManger.closeDb(db);
                break;
            case R.id.button_apidelete:
                db =helper.getWritableDatabase();
                int count2=DbManger.deleteData(db,Dbutils.TABLE_NAME,Dbutils.STUDENT_ID+"=2",null);
                if(count>2){
                    Toast.makeText(MainActivity.this,"删除数据成功",Toase.LENGTH_SHORT).show();
                }else{
                    Toast.makeText(MainActivity.this,"删除数据失败",Toast.LENGTH_SHORT).show();   
                }
                DbManger.closeDb(db);
                break;
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值