Android数据库Sqlite的增删改查

本文详细介绍了一个简单的SQLite数据库应用实例,包括数据库的创建、表格结构定义、基本的CRUD(创建、读取、更新、删除)操作实现过程。通过具体代码展示了如何在Android环境下进行数据的增删改查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先定义Sqlite帮助类 DBHelperSqlite

public class DBHelperSqlite extends SQLiteOpenHelper {

    private static final String sql = "create table info(_id integer primary key autoincrement,tram varchar(20),humi varchar(20))";

    public DBHelperSqlite(Context context) {

        super(context,"WuLian.db",null,1);//数据库版本改变,版本号version做出改变
    }

    /**
     * db.execSQL(sql);创建表
     * @param db
     */
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(sql);
    }

    /**
     * 数据库版本跟新
     * @param db
     * @param oldVersion 旧的数据库版本
     * @param newVersion 新的数据库版本
     */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        //向某表添加XX字段
        //db.execSQL("alter table 表名(info) add 字段名 类型(varchar(20))");
    }

}

这里我们创建了一个info表,含有三个字段,_id(integer类型,主键,自动增长,),tram(温度),humi(湿度);

接下来创建操作数据库的工具类(含有增删改查)InfoDao

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

/**
 * Created by Administrator on 2017/11/4.
 */

public class InfoDao {

    private DBHelperSqlite dbHelperSqlite;
    public InfoDao(Context context){
        dbHelperSqlite = new DBHelperSqlite(context);
    }

    /**
     *添加
     * @param bean
     * @return
     */
    public boolean add(InfoBean bean){
        SQLiteDatabase db = dbHelperSqlite.getReadableDatabase();
        //使用map封装的对象,用来存放值
        ContentValues values = new ContentValues();
        values.put("tram",bean.tram);
        values.put("humi",bean.humi);
        //table 表名,nullColumnHack:可以为为空,标示添加一个空行,value:数据一行的值,返回值:代表添加这个新行的Id。-1代表添加失败
        long result = db.insert("info",null,values);
        db.close();
        if(result!=-1){
            //-1代表添加失败
            return true;
        }else{
            return false;
        }
    }

    /**
     * 删除
     * @param _id
     * @return
     */
    public int del(String _id){
        SQLiteDatabase db = dbHelperSqlite.getReadableDatabase();
        //table:表名,whereClause:删除条件,whereArgs:条件的占位符参数
        int result =  db.delete("info","_id = ?",new String[]{_id});
        db.close();
        return result;
    }

    /**
     * 修改
     * @param bean
     * @return 成功更新多少行
     */
    public int update(InfoBean bean){
        SQLiteDatabase db = dbHelperSqlite.getReadableDatabase();
        ContentValues values = new ContentValues();
        values.put("tram",bean.tram);
        values.put("humi",bean.humi);
        int result = db.update("info",values,"_id = ?",new String []{bean._id});
        db.close();
        return result;

    }

    /**
     * 一般查询不用用语句,上面的方法不适合多表操作,查询时用sql语句
     * @param _id
     */
    public void query(String _id){
        SQLiteDatabase db = dbHelperSqlite.getReadableDatabase();
        Cursor cursor = db.rawQuery("select tram,humi from info where _id = ?",new String[]{_id});
        if(cursor != null && cursor.getCount() > 0){
            //判断cursor中是否存在数据
            while (cursor.moveToNext()){
                String tram = cursor.getString(0);
                String humi = cursor.getString(1);
                System.out.println("_id:"+_id+";name:"+tram+";humi:"+humi);
            }
            cursor.close();
        }
        db.close();

    }


}

InfoDao里面拥有增加,删除,修改,和查询,查询使用的sql语句。前三种自带返回值,可以判断是否添加,删除和修改多少行

这里我们需要创建一个存放的InfoBean的类


public class InfoBean {

    public String _id;
    public String tram;
    public String humi;
}

接下来在main.xml里面调用就行了

 InfoDao infoDao = new InfoDao(mContext);
            switch (group.getCheckedRadioButtonId()){
                case R.id.rbtn1:
                    InfoBean infoBean = new InfoBean();
                    infoBean.tram = "28";
                    infoBean.humi = "30";
                    boolean result = infoDao.add(infoBean);
                    if(result){
                        System.out.println("添加成功");
                    }else{
                        System.out.println("添加失败");
                    }
                    break;
                case R.id.rbtn2:
                    int lin = infoDao.del("1");
                    System.out.println("删除了"+lin+"行");
                    break;
                case R.id.rbtn3:
                    InfoBean infoBean1 = new InfoBean();
                    infoBean1._id = "1";
                    infoBean1.tram = "2";
                    infoBean1.humi = "2";
                    int update = infoDao.update(infoBean1);
                    System.out.println("修改了:"+update+"行");
                    break;
                case R.id.rbtn4:
                    infoDao.query("1");
                    break;
            }
        }

//具体需要根据自己所需修改,
结果在LogCat里面可已看见,查出来对象也可以添加到listview显示,下一篇会给大家写出来。
传统的语句增删改也是可以的,这里用到自带方法提供返回值,有利于直接观察。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值