博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android 之从操作sqlite
阅读量:4289 次
发布时间:2019-05-27

本文共 4977 字,大约阅读时间需要 16 分钟。

---------------MainActivy------------

public class MainActivity extends AppCompatActivity {private EditText tx;//设置一个全局变量    private SQLiteDatabase db;    private SqliteHelp sqlh;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);      sqlh= new SqliteHelp(getApplicationContext());      //如果是第一次就是创建,如果已经创建就打开       db= sqlh.getWritableDatabase();和上面的方法一样的效果,之是当磁盘满了之后,会返回一个只读的数据库对象//        SQLiteDatabase db1= sqlh.getReadableDatabase();        //执行一条sql语句        db.execSQL("insert into info (name,phone) values(?,?) ",new Object[]{"lambo","13333333" });//插入        Cursor cur=db.rawQuery("select *from info",null);        if(cur !=null && cur.getCount()>0){//结果集的行数大于零while(cur.moveToNext()) {//循环获取每一行    cur.getString(1);//第二列的数据}    //*****************************google封装的一套数据库操作*********    ContentValues values=new ContentValues();    values.put("name","lambo");    values.put("pwd","123456");   long id= db.insert("info",null,values);//返回之代表插入新行的id;,第一个参数是表名,第二个参数是,第三个参数是mapint nuDe=db.delete("info","name=?",new String[]{"zhangsan"});//删除,返回值是受影响的行数int update=db.update("info",values,"name=?",new String[]{"wangwu"});//更新,返回受影响的行数Cursor resu=db.query("info",new String[]{"name","phone"},"name=?",new String[]{"wangwu",null,null,null});//第一个参数是表名,第二哥参数是查询哪几个字段,第三个参数是条件,第四个参数是条件的值,第五六七个参数是where,having,order等条件//***********************事务            db.beginTransaction();/* 开启事务 */            try{                //这里执行                db.setTransactionSuccessful();//如果上面的sql执行都没错,则会执行这句话,就会提交,否则会回滚;            }catch {            }final {db.endTransaction();;//结束事务            }        }    }}

-----------SqliteHelp-------

/** * Created by lambo on 2018/3/25. * 数据库操作的类 * sqlite图形操作工具sqlite expert professionnal */public class SqliteHelp extends SQLiteOpenHelper {    //构造方法    /**     * context 上下文     * name数据库的名字     * factory结果集curser,默认null     * version数据库版本,比大于等于1,从一开始     *     */    public SqliteHelp(Context context) {        super(context, "test.db", null, 1);    }    @Override    public void onOpen(SQLiteDatabase db) {        super.onOpen(db);    }    //当数据库版本升级的时候的调用。适合做表结构的更新    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {    }    //当数据库第一次被创建的时候调用,适合创建表结构    @Override    public void onCreate(SQLiteDatabase db) {    }}

==================sqlite操作=========

public class BlacknumberDBOpenHelper extends SQLiteOpenHelper {    //创建数据库的构造方法,数据库名blacknumber.db    public BlacknumberDBOpenHelper(Context context ) {        super(context, "blacknumber.db", null, 1);    }//完成创建数据库的时候,初始化数据库表的结构    @Override    public void onCreate(SQLiteDatabase sqLiteDatabase) {sqLiteDatabase.execSQL("create table blacknumber(id integer primary key autoincrement,number varchar(10))");    }    @Override    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {    }}
/** * Created by wofu on 2018/4/23. * 黑名单增删改查的工具类 */public class BlacknameDao extends Object {    private  BlacknumberDBOpenHelper helper;    //构造方法    public BlacknameDao(Context context) {        helper=new BlacknumberDBOpenHelper(context);//在这个实例化中已经完成创建数据库,初始化数据库    }    //查询    public boolean find(String number){        boolean result=false;        SQLiteDatabase db=helper.getReadableDatabase();//获取数据库      Cursor cursor= db.rawQuery("select *from blacknumber where number=?",new String[]{number});        if(cursor.moveToNext()){            result=true;        }        cursor.close();        db.close();        return result;    }    /*增    *参数一黑名单号码,参数二拦截模式    */public  void  add(String number,String model){        SQLiteDatabase db=helper.getWritableDatabase();    ContentValues values=new ContentValues();    values.put("number",number);    values.put("model",model);        db.insert("blacknumber",null,values);        db.close();}    /*更新       *参数一黑名单号码,参数二拦截模式       */    public  void  update(String number,String model){        SQLiteDatabase db=helper.getWritableDatabase();        ContentValues values=new ContentValues();        values.put("number",number);        values.put("model",model);        db.update("blacknumber",values,"number=?",new String[]{number});        db.close();    }    /*删除      *参数一黑名单号码      */    public  void  delete(String number){        SQLiteDatabase db=helper.getWritableDatabase();        db.delete("blacknumber","number=?",new String[]{number});        db.close();    }    //查询全部    public List
findAll(){ List
result=new ArrayList<>(); SQLiteDatabase db=helper.getReadableDatabase();//获取数据库 Cursor cursor= db.rawQuery("select number from blacknumber ",null); if(cursor.moveToNext()){ BlackNumberInfo info=new BlackNumberInfo(); String numb=cursor.getString(0); info.setNumber(numb); result.add(info); } cursor.close(); db.close(); return result; }}

转载地址:http://btmgi.baihongyu.com/

你可能感兴趣的文章
Redis两种持久化机制RDB和AOF详解(面试常问,工作常用)
查看>>
事务隔离级别中的可重复读能防幻读吗?
查看>>
老伙计,关于JDK并发包,这些不为人知的秘密你知道多少?
查看>>
图片的左右切换
查看>>
进级的RecyclerView——LRecyclerView
查看>>
Android 利用Gradle实现app的环境分离
查看>>
Android系统篇之----Binder机制和远程服务调用
查看>>
JavaScript DOM 属性
查看>>
Gradle 实现 Android 多渠道定制化打包
查看>>
Android开源项目及库整理总结
查看>>
Android快速开发系列 10个常用工具类
查看>>
深入理解JSON对象
查看>>
类似新浪微博帖子显示话题、@好友、表情解析等
查看>>
JSP 自动刷新
查看>>
Java应用架构的演化之路
查看>>
看透内存中的数组
查看>>
Android工程打包成jar文件,并且将工程中引用的jar一起打入新的jar文件中
查看>>
JS单例模式在工作中的使用
查看>>
Java易混小知识——equals方法和==的区别
查看>>
内置对象(Session、Application、ViewState)
查看>>