android 数据库sqlite的使用

android开发的过程中,不可避免的有需要存储数据的时候。

android的数据存取机制有很多,其中最重要的大概就是sqlite数据库了

sqlite 数据库是android自带的数据库。不需要任何别的插件。

sqlite的使用步骤大概有两步

1.编写SQLiteOpenHelper类

这个类用户封装数据库表的建立、数据库的获得等操作

2.编写TableManager类

这个类用户封装某个表的各种操作

1、SQLiteOpenHelper类

public class MySqliteOpenHelper extends SQLiteOpenHelper {

    public MySqliteOpenHelper(Context context, String name,
            CursorFactory factory, int version) {
        super(context, name, factory, version);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase arg0) {
        // TODO Auto-generated method stub
                //以下创建表的语句,执行括号中的sql语句,创建表。同一个数据库中的所有表都在这里创建,
        arg0.execSQL("CREATE TABLE IF NOT EXISTS tb_Depot"
                + "(id interger PRIMARY KEY,DepotSite varchar,DepotAcreage interger,DepotPrice interger,Linkman varchar,Phone varchar,Content varchar)");
        arg0.execSQL("CREATE TABLE IF NOT EXISTS tb_Freight"
                + "(id interger PRIMARY KEY,start varchar,terminal varchar,FreightType varchar,FreightWeight int,linkman varchar,phone varchar, content varchar)");
        arg0.execSQL("CREATE TABLE IF NOT EXISTS tb_User"
                + "(id interger PRIMARY KEY,UserName varchar,UserPass varchar,CompanyName varchar,address varchar,phone varchar,email varchar,permission varchar)");
        arg0.execSQL("CREATE TABLE IF NOT EXISTS tb_Chauffeur"
                + "(id interger primary key,ChauffeurName varchar,trucktype varchar,tel varchar,effectdate varchar,content varchar)");
        arg0.execSQL("CREATE TABLE IF NOT EXISTS tb_Truck"
                + "(id interger primary key,TruckNumber varchar,TruckWeight varchar,TruckPrice varchar,Start varchar,Whither varchar,linkman varchar,phone varchar)");

    }

    @Override
    public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
        // TODO Auto-generated method stub
        //如果需要用到更新数据库的话,在这里进行操作
    }

}

然后是封装了数据库表操作的manager类

public class DepotDBManager {
    private MySqliteOpenHelper helper ;
    private SQLiteDatabase db;

    public DepotDBManager(Context context){
        //实例化一个sqliteopenhelpr 类
        helper = new MySqliteOpenHelper(context,"depot.db",null,1);
        //获得一个可读写的数据库
        db = helper.getWritableDatabase();
    }

    public void add(DepotValue depotValue){
        //这是往表里增加数据的类,系统为我们封装好了一套工具,我们可以不用再写sql语句了
        ContentValues newValues = new ContentValues();
        newValues.put("Id", depotValue.getId());
        newValues.put("DepotSite", depotValue.getDepotSite());
        newValues.put("DepotAcreage", depotValue.getDepotAcreage());
        newValues.put("DepotPrice", depotValue.getDepotPrice());
        newValues.put("Linkman", depotValue.getLinkman());
        newValues.put("Phone", depotValue.getPhone());
        newValues.put("Content", depotValue.getContent());

        db.insert("tb_Depot",null, newValues);
    }

    public List<DepotValue> query(){
        //这是查询操作 返回值是一个封装了数据库表信息的value类的链表
        ArrayList<DepotValue> depotvalues = new ArrayList<DepotValue>();
        Cursor c=queryTheCursor();

        while(c.moveToNext()){
            DepotValue depot = new DepotValue();
            depot.setId(c.getInt(c.getColumnIndex("id")));

            depot.setDepotSite(c.getString(c.getColumnIndex("DepotSite")));
            Log.i("chacuo","3332");
            depot.setDepotAcreage(c.getInt(c.getColumnIndex("DepotAcreage")));
            depot.setDepotPrice(c.getInt(c.getColumnIndex("DepotPrice")));
            depot.setLinkman(c.getString(c.getColumnIndex("Linkman")));
            depot.setPhone(c.getString(c.getColumnIndex("Phone")));
            depot.setContent(c.getString(c.getColumnIndex("Content")));

            depotvalues.add(depot);
            Log.i("hahaha",depot.getId()+depot.getContent());
        }
        c.close();
        return depotvalues;
    }
    public void deletebyid(int id){
        db.execSQL("delete from tb_Depot where id="+id);
    }
    public Cursor queryTheCursor(){
        Cursor c = db.rawQuery("select * from tb_Depot", null);
        return c;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值