zoukankan      html  css  js  c++  java
  • 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);
                }
            }

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

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

  • 相关阅读:
    Httpd服务入门知识-Httpd服务常见配置案例之虚拟主机
    Httpd服务入门知识-Httpd服务常见配置案例之Apache的工作做状态status页面
    Httpd服务入门知识-Httpd服务常见配置案例之ServerSignature指令选项
    Httpd服务入门知识-Httpd服务常见配置案例之实现用户家目录的http共享
    Httpd服务入门知识-Httpd服务常见配置案例之定义路径别名
    Httpd服务入门知识-Httpd服务常见配置案例之设定默认字符集
    Httpd服务入门知识-Httpd服务常见配置案例之日志设定
    Httpd服务入门知识-Httpd服务常见配置案例之基于客户端来源地址实现访问控制
    瞠目结舌的一幕即将出现,朝韩:明修栈道暗度陈仓
    Flex+blazeds实现与mySQL数据库的连接(已成功实现此文的例子)
  • 原文地址:https://www.cnblogs.com/zhangqie/p/7240536.html
Copyright © 2011-2022 走看看