Android数据库的基本使用,增删改查!

来源:互联网 发布:布里斯班 知乎 编辑:程序博客网 时间:2024/05/16 05:41

1,须知:

需要继承SQLiteOpenHelper这个抽象类并且重写onCreate和onUpgrade的方法。

onCreate方法:数据库第一次被建立的时候调用的方法。

onUpgrade方法:数据库需要升级更新时调用的方法。(这里在app重新安装时,检测到版本号升级所调用的方法)

一,代码实现

public class MySQLite extends SQLiteOpenHelper{    Context context;    public MySQLite(Context context, String name,int version) {        super(context, name, null, version);//这里的version为版本号,name为数据库的文件名(注:一定要有后缀名.db)    }    @Override    public void onCreate(SQLiteDatabase db) {//第一次建表        db.execSQL("create table info (_id integer primary key autoincrement,name varchar(20),pwd varchar(20))");//建表的数据库语句//表名为info,primary key autoincrement:组件为自增长型,_id integer:id为integer类型。name varchar(20):name为String类型,20为字符长度(由于系统不检测,也没有用,随便写);        Log.i("yyy", "数据库创建了 ");    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {//更新升级        Log.i("yyy", "数据库升级了");    }}

数据库:
这里写图片描述

二,增删改查

MySQLite mySQLite=new MySQLite(this,"haha.db",1,);//这里实例化MySQLite对象/*************************************************************************/    public void add(String name,String pwd){//添加        SQLiteDatabase db=mySQLite.getWritableDatabase();//获取SQLiteOpenHelper的帮助类SQLiteDatabase,得到可读可写的数据库        db.execSQL("insert into info (name,pwd) values ('"+name+"','"+pwd+"')");//执行数据库语句        db.close();//清除。    }    public void del(String name){//删除        SQLiteDatabase db=mySQLite.getWritableDatabase();//获取SQLiteOpenHelper的帮助类SQLiteDatabase,得到可读可写的数据库        db.execSQL("delete from info where name='"+name+"'");//执行数据库语句        db.close();//清除。    }    public void geng(String name,String pwd){//更改        SQLiteDatabase db=mySQLite.getWritableDatabase();//获取SQLiteOpenHelper的帮助类SQLiteDatabase,得到可读可写的数据库        db.execSQL("update info set pwd ='"+pwd+"'where name ='"+name+"'");        db.close();//清除。    }    public String find(String name){//查询        SQLiteDatabase db=mySQLite.getWritableDatabase();//获取SQLiteOpenHelper的帮助类SQLiteDatabase,得到可读可写的数据库        Cursor cursor=db.rawQuery("select * from info where name='"+name+"'",null);//执行数据库语句,并获取游标的对象        String a="";        if(cursor.moveToNext()){//移动光标把数据取出,true则有数据        //这里一般用对象存储,我为了方便,用String类型来存储。            a+=cursor.getInt(0)+"\t";            a+=cursor.getString(1)+"\t";            a+=cursor.getString(2)+"\t";        }        cursor.close();//清除游标。        db.close();//清除。        return a;    }    public String allfind(){//查询全部        SQLiteDatabase db=mySQLite.getWritableDatabase();//获取SQLiteOpenHelper的帮助类SQLiteDatabase,得到可读可写的数据库        Cursor cursor=db.rawQuery("select * from info",null);//执行数据库语句,并获取游标的对象        StringBuffer sb=new StringBuffer("");        while (cursor.moveToNext()){//移动光标把数据取出,true则有数据            //这里一般用对象存储,我为了方便,用String类型来存储。            sb.append(cursor.getInt(0)+"\t");            sb.append(cursor.getString(1)+"\t");            sb.append(cursor.getString(2)+"\t");            sb.append("\n");        }        cursor.close();//清除游标。        db.close();//清除。        return sb.toString();    }

三,数据库语句

//新建表"create table info (_id integer primary key autoincrement,name varchar(20),pwd varchar(20))"//表名为info,primary key autoincrement:组件为自增长型,_id integer:id为integer类型。name varchar(20):name为String类型//添加数据"insert into info (name,pwd) values ('yb','123')"//添加name为yb,pwd为123的信息到info表里面//删除数据"delete from info where name='yb'"//删除info表中叫yb的//更改数据"update info set pwd='999' where name ='yb'"//修改info表中name为yb的pwd为999//查询数据"select * from info  where name='yb'"//查询info表中name为yb的数据(数据库中的)//查询全部"select * from info"//查询info表中的全部数据

如若发现有错的地方,希望各位博友们多多指出!

1 0
原创粉丝点击