Android我的便签-----SQLite的使用方法

在Android开发中也有数据库的存在,最近有空,把以前写的一个便签来讲述一下Android中的数据库,跟大家分享分享的,希望对大家有所帮助。

SQLite简介

SQLite,是一款轻量级的关系型数据库。由于它占用的资源非常少,所以在很多嵌入式设备都是用SQLite来存储数据。

 

SQLite数据库操作和常用的数据库操作差不多;如:MySQL......; 增删改查等语句操作基本相同; 今天给大家Android SQLite语句相关操作的两种方式

 

首先来看一下我的便签的效果图:(图中操作顺序:查询,添加,修改,删除)

        

1:创建数据库和表,创建一个类;如下:

public class HelperSQLite extends SQLiteOpenHelper{

    private SQLiteDatabase sqLiteDatabase;

    /***
     * 创建数据库
     * @param context
     */
    public HelperSQLite(Context context){
        super(context, UtilDB.DATABASE_NAME, null, UtilDB.DATABASE_VERION);
        sqLiteDatabase=this.getWritableDatabase();
    }

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

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        //用于更新
    }
}

2:介绍添加数据的两种方法

   //方式1  SQL语句的方式
        String stu_sql="insert into "+UtilDB.DATABASE_TABLE+"("+UtilDB.USER_CONTENT+","+UtilDB.USER_YEAR+","+UtilDB.USER_TIME+") values('"+userContent+"','"+userYear+"','"+userTime+"')";
        sqLiteDatabase.execSQL(stu_sql);

        //方式2
        ContentValues contentValues=new ContentValues();
        contentValues.put(UtilDB.USER_CONTENT,userContent);
        contentValues.put(UtilDB.USER_YEAR,userYear);
        contentValues.put(UtilDB.USER_TIME,userTime);
        return sqLiteDatabase.insert(UtilDB.DATABASE_TABLE,null,contentValues)>0;//成功返回true

3:删除的两种方式

 String sql = "delete from "+UtilDB.DATABASE_TABLE+" where "+UtilDB.USER_ID+" = "+id;
        sqLiteDatabase.execSQL(sql);


        String sql=UtilDB.USER_ID+"=?";
        String[] contentValuesArray=new String[]{String.valueOf(id)};
        return sqLiteDatabase.delete(UtilDB.DATABASE_TABLE,sql,contentValuesArray)>0;//成功返回true

4:修改的两种方式

 //方式1 
        String sql = "update "+UtilDB.DATABASE_TABLE+" set "+UtilDB.USER_CONTENT+" = '"+content+"',"
                +UtilDB.USER_YEAR+" = '"+userYear+"',"+UtilDB.USER_TIME+"='"+userTime+"' where "+UtilDB.USER_ID+" = "+id;
        sqLiteDatabase.execSQL(sql);

        //方式2
        ContentValues contentValues=new ContentValues();
        contentValues.put(UtilDB.USER_CONTENT,content);
        contentValues.put(UtilDB.USER_YEAR,userYear);
        contentValues.put(UtilDB.USER_TIME,userTime);
        String sql=UtilDB.USER_ID+"=?";
        String[] strings=new String[]{id};
        return sqLiteDatabase.update(UtilDB.DATABASE_TABLE,contentValues,sql,strings)>0;  //成功返回true

5:查询数据  便签中  使用的是降序排列的
 Cursor cursor=sqLiteDatabase.query(UtilDB.DATABASE_TABLE,null,null,null,null,null,UtilDB.USER_ID+" desc");//条件查询降序排序   

得到数据:

   方式1:

List<UserInfo> list=new ArrayList<UserInfo>();
 Cursor cursor=sqLiteDatabase.query(UtilDB.DATABASE_TABLE,null,null,null,null,null,UtilDB.USER_ID+" desc");
        if (cursor!=null){
            while (cursor.moveToNext()){
                UserInfo userInfo=new UserInfo();
                userInfo.setId(String.valueOf(cursor.getInt(cursor.getColumnIndex(UtilDB.USER_ID))));
                userInfo.setUserContent(cursor.getString(cursor.getColumnIndex(UtilDB.USER_CONTENT)));
                userInfo.setUserYear(cursor.getString(cursor.getColumnIndex(UtilDB.USER_YEAR)));
                userInfo.setUserTime(cursor.getString(cursor.getColumnIndex(UtilDB.USER_TIME)));
                list.add(userInfo);
            }
        }

  方式2:通过游标得到数据
List<UserInfo> list=new ArrayList<UserInfo>();
        Cursor cursor=sqLiteDatabase.query(UtilDB.DATABASE_TABLE,null,null,null,null,null,UtilDB.USER_ID+" desc");
        if (cursor!=null){
            while (cursor.moveToNext()){//通过游标得到数据
                UserInfo userInfo=new UserInfo();
                userInfo.setId(String.valueOf(cursor.getInt(0)));
                userInfo.setUserContent(cursor.getString(1));
                userInfo.setUserYear(cursor.getString(2));
                userInfo.setUserTime(cursor.getString(3));
                list.add(userInfo);
            }
        }

由于代码太多,就不一一贴出来了,直接下载即可


源码下载Github:https://github.com/DickyQie/android-sqlite

不足之处请留言指正!有问题的可以给我留言!谢谢!


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值