zoukankan      html  css  js  c++  java
  • android 数据库操作

    做android的数据库方面用的很少,所以用的时候记录下来,下次碰到直接copy,一下代码是最基本的实现:

    首先是继承helper类:

    package com.create.rycreateim.db;
    
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    
    import com.create.rycreateim.utils.Constant;
    
    /**
     * Created by Administrator on 2016/4/14 0014.
     */
    public class DbHelper extends SQLiteOpenHelper {
        public DbHelper(Context context) {
    /**
    * 四个参数
    * 上下文
    * 数据库名字,根据自己的习惯起,必须是string
    * 第三个cursor工厂,一般不用管,设为null
    * 第四个为版本号
    */
    super(context, Constant.DB_NAME, null, 1);
    } @Override
    public void onCreate(SQLiteDatabase db) {
    //创建表格,只在第一次初始化的时候执行 db.execSQL(
    "create table "+ Constant.USERTABLENAME+"(_id integer primary key autoincrement, userid varchar(20), usernick varchar(20), portraituri varchar(100));"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //根据版本号更新数据库的操作,只有版本号升高时 才会执行 } }

    下面为操作数据库的工具类:

    package com.create.rycreateim.db;
    
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.net.Uri;
    
    import com.create.rycreateim.utils.Constant;
    
    import java.util.ArrayList;
    
    import io.rong.imlib.model.UserInfo;
    
    
    /**
     * 设置为单例
     * Created by Administrator on 2016/4/15 0015.
     */
    public class DbUtils {
    
        private final DbHelper dbHelper;
    
        private DbUtils(Context context) {
           //在构造方法中创建helper对象,即保持了helper也为单一对象。
            dbHelper = new DbHelper(context);
        }
    
        private static DbUtils instance;
    
        public synchronized static DbUtils getInstance(Context context) {
            if (instance == null) {
                instance = new DbUtils(context);
            }
            return instance;
        }
    
        /**
         * 插入新的用户
         *
         * @param userInfo
         */
        public boolean saveNewUser(UserInfo userInfo) {
            SQLiteDatabase db = this.dbHelper.getWritableDatabase();
            ContentValues values = new ContentValues();
            values.put("userid", userInfo.getUserId());
            values.put("usernick", userInfo.getName());
            values.put("portraituri", (userInfo.getPortraitUri()) + "");
            long insert = db.insert(Constant.USERTABLENAME, null, values);
            if(insert==-1){
                return false;
            }
            return true;
        }
    
        /**
         * 更新用户信息
         * @param userInfo
         */
        public boolean updateUserInfo(UserInfo userInfo) {
            SQLiteDatabase db = dbHelper.getWritableDatabase();
            ContentValues values = new ContentValues();
            values.put("usernick", userInfo.getName());
            values.put("portraituri", userInfo.getPortraitUri() + "");
            int update = db.update(Constant.USERTABLENAME, values, "userid=?", new String[]{userInfo.getUserId()});
            if(update<1){
                return false;
            }
            return true;
        }
    
        /**
         * 用户信息的删除操作
         * @param userInfo
         */
        public boolean deletUserInfo(UserInfo userInfo){
            SQLiteDatabase db = dbHelper.getWritableDatabase();
            int delete = db.delete(Constant.USERTABLENAME, "userid=?", new String[]{userInfo.getUserId()});
            if(delete<1){
                return false;
            }
            return true;
        }
    
        /**
         * 查询所有的用户信息
         * @return
         */
        public ArrayList<UserInfo> queryUserInfo(){
            SQLiteDatabase db = dbHelper.getReadableDatabase();
            ArrayList<UserInfo> userInfos=new ArrayList<>();
            Cursor cursor =
                    db.query(Constant.USERTABLENAME, new String[]{"userid,usernick,portraituri"}, null, null, null, null, null);
           UserInfo userInfo=null;
            while (cursor.moveToNext()){
                String userid = cursor.getString(cursor.getColumnIndex("userid"));
                String usernick = cursor.getString(cursor.getColumnIndex("usernick"));
                String portraituri = cursor.getString(cursor.getColumnIndex("portraituri"));
                Uri uri=Uri.parse(portraituri);
                userInfo = new UserInfo(userid,usernick,uri);
                userInfos.add(userInfo);
            }
            cursor.close();
              return userInfos;
        }
    }
  • 相关阅读:
    Redis持久化——AOF日志
    设计原则:接口隔离原则(ISP)
    设计原则:里式替换原则(LSP)
    新入职一家公司如何快速进入工作状态
    又是一年毕业季——如何入坑程序员
    设计原则:开闭原则(OCP)
    设计原则:单一职责(SRP)原则
    Redis持久化——内存快照(RDB)
    工作中应该如何管理自己的情绪?
    如何成为一个精力充沛的程序员——掌控
  • 原文地址:https://www.cnblogs.com/epmouse/p/5394584.html
Copyright © 2011-2022 走看看