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);
            }
        }

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

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

原文地址:https://www.cnblogs.com/zhangqie/p/7240536.html