sqlite增删改查的两种方式

/**
 * Created by cc05451 on 17/1/9.
 * sqlite增删改查的两种方式
 */


public class InfoDao {
    private MySqliteOpenHelper mySqliteOpenHelper;
    public InfoDao(Context context)
    {
        mySqliteOpenHelper = new MySqliteOpenHelper(context);
    }

    /***
     * 写入数据库方法一
     * @param bean
     */

    public void add(InfoBean bean){
        SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase();
        String sql = "insert into info(name,phone) values(?,?);";
        /***
         * 第一个参数sql:sql语句
         * 第二个参数bindArgs:sql语句中的占位符(?)
         */

        db.execSQL(sql,new Object[]{bean.name,bean.phone});
        db.close();
    }

    /***
     * 写入数据库方法二
     * @param bean
     * @return boolean
     */

    public boolean add2(InfoBean bean){
        SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase();
        ContentValues values = new ContentValues();
        values.put("name",bean.name);
        values.put("phone",bean.phone);
        /***
         * 第一个参数table:表名
         * 第二个参数nullcolumnhack:当contentvalues为空时插入的数据
         * 第三个参数:插入数据库的值
         * 返回-1表示出错,成功返回添加新行的id
         */

        long result = db.insert("info",null,values);
        db.close();
        if (result!=-1){
            return true;
        }else{
            return false;
        }
    }

    /***
     * 删除数据方法一
     * @param name
     */

    public void del(String name){
        SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase();
        String sql = "delete from info where name=?;";
        /***
         * 第一个参数sql:sql语句
         * 第二个参数bindArgs:sql语句中的占位符(?)
         */

        db.execSQL(sql,new Object[]{name});
        db.close();

    }

    /***
     * 删除数据方法二
     * @param name
     * @return
     */

    public int del2(String name)
    {
        SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase();
        /***
         * 第一个参数table:表名
         * 第二个参数删除条件
         * 第三个参数sql语句占位符
         * 返回删除的行数
         */

        int result = db.delete("info","name = ?",new String[]{name});
        db.close();
        return result;
    }

    /***
     * 更新数据方法一
     * @param bean
     */

    public void update(InfoBean bean){
        SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase();
        String sql = "update info set phone=? where name=?;";
        /***
         * 第一个参数sql:sql语句
         * 第二个参数bindArgs:sql语句中的占位符(?)
         */

        db.execSQL(sql,new Object[]{bean.phone,bean.name});
        db.close();

    }
    /***
     * 更新数据方法二
     * @param bean
     * @return
     */

    public int update2(InfoBean bean){
        SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase();
        ContentValues values = new ContentValues();
        values.put("phone",bean.phone);
        /***
         * 第一个参数table:表名
         * 第二个参数更新条件
         * 第三个参数sql语句占位符
         * 返回更新的行数
         */

        int update = db.update("info",values,"name = ?",new String[]{bean.name});
        db.close();
        return update;
    }

    /***
     * 查询数据方法一
     * @param name
     */

    public void select(String name){
        System.out.println("selectxxxx");
        SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase();
        String sql = "select id,name,phone from info where name=?;";
        Cursor cursor = db.rawQuery(sql,new String[]{name});
        if(cursor!=null && cursor.getCount()>0) {
            while (cursor.moveToNext()) {
                int id = cursor.getInt(0);
                String name_str = cursor.getString(1);
                String phone = cursor.getString(2);
                System.out.println("_id:" + id + "name:" + name_str + "phone:" + phone);

            }
            cursor.close();
        }
        db.close();

    }

    /***
     * 查询数据方法二
     * @param name
     */


    public void select2(String name){
        SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase();
        /***
         * 第一个参数table:表名
         * 第二个参数columns:查询的列名,为空查询所有列
         * 第三个参数selection:查询条件
         * 第四个参数selectionArgs:查询条件占位符
         * 第五个参数groupby:分组
         * 第六个参数having:分组条件
         * 第七个参数orderby:排序
         */

        Cursor cursor = db.query("info",new String[]{"id","name","phone"},"name = ?",new String[]{name},null,null,"id desc");
        if(cursor!=null && cursor.getCount()>0) {
            while (cursor.moveToNext()) {
                int id = cursor.getInt(0);
                String name_str = cursor.getString(1);
                String phone = cursor.getString(2);
                System.out.println("_id:" + id + "name:" + name_str + "phone:" + phone);

            }
            cursor.close();
        }
        db.close();

    }

}

发表评论

电子邮件地址不会被公开。 必填项已用*标注