zoukankan      html  css  js  c++  java
  • android数据库操作实例,留着以后用

    Android数据库操作类实例 实体类:UserInfo.java

    package my.db;
     
    import java.io.Serializable;
     
    import android.graphics.drawable.Drawable;
     
    public class UserInfo implements Serializable {
     
         public static final String ID = "_id";
         public static final String USERID = "userId";
         public static final String TOKEN = "token";
         public static final String TOKENSECRET = "tokenSecret";
         public static final String USERNAME = "userName";
         public static final String USERICON = "userIcon";
     
         private String id;
         private String userId; // 用户id
         private String token;
         private String tokenSecret;
         private String userName;
         private Drawable userIcon;
         //getter and setter省略
    }
    SqliteHelper类:
    package my.db;
     
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteDatabase.CursorFactory;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.util.Log;
     
    public class SqliteHelper extends SQLiteOpenHelper{
        //用来保存UserID、Access Token、Access Secret的表名
        public static final String TB_NAME= "users";
        public SqliteHelper(Context context, String name, CursorFactory factory, int version) {
            super(context, name, factory, version);
        }
        //创建表
        @Override
        public void onCreate(SQLiteDatabase db) {
            db.execSQL( "CREATE TABLE IF NOT EXISTS "+
                    TB_NAME+ "("+
                    UserInfo. ID+ " integer primary key,"+
                    UserInfo. USERID+ " varchar,"+
                    UserInfo. TOKEN+ " varchar,"+
                    UserInfo. TOKENSECRET+ " varchar,"+
                    UserInfo. USERNAME+ " varchar,"+
                    UserInfo. USERICON+ " blob"+
                    ")"
                    );
            Log. e("Database" ,"onCreate" );
        }
        //更新表
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            db.execSQL( "DROP TABLE IF EXISTS " + TB_NAME );
            onCreate(db);
            Log. e("Database" ,"onUpgrade" );
        }
        //更新列
        public void updateColumn(SQLiteDatabase db, String oldColumn, String newColumn, String typeColumn){
            try{
                db.execSQL( "ALTER TABLE " +
                        TB_NAME + " CHANGE " +
                        oldColumn + " "+ newColumn +
                        " " + typeColumn
                );
            } catch(Exception e){
                e.printStackTrace();
            }
        }
    }
    CRUD类DataHelper:
    package my.db;
     
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.util.ArrayList;
    import java.util.List;
     
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.graphics.Bitmap;
    import android.graphics.drawable.Drawable;
    import android.util.Log;
     
    public class DataHelper {
         // 数据库名称
         private static String DB_NAME = "weibo.db";
         // 数据库版本
         private static int DB_VERSION = 2;
         private SQLiteDatabase db;
         private SqliteHelper dbHelper;
     
         public DataHelper(Context context) {
               dbHelper = new SqliteHelper(context, DB_NAME, null, DB_VERSION );
               db = dbHelper.getWritableDatabase();
         }
     
         public void Close() {
               db.close();
               dbHelper.close();
         }
     
         // 获取users表中的UserID、Access Token、Access Secret的记录
         public List<UserInfo> GetUserList(Boolean isSimple) {
              List<UserInfo> userList = new ArrayList<UserInfo>();
              Cursor cursor = db.query(SqliteHelper. TB_NAME, null, null , null, null,
                        null, UserInfo. ID + " DESC");
              cursor.moveToFirst();
               while (!cursor.isAfterLast() && (cursor.getString(1) != null )) {
                  UserInfo user = new UserInfo();
                  user.setId(cursor.getString(0));
                  user.setUserId(cursor.getString(1));
                  user.setToken(cursor.getString(2));
                  user.setTokenSecret(cursor.getString(3));
                   if (!isSimple) {
                       user.setUserName(cursor.getString(4));
                       ByteArrayInputStream stream = new ByteArrayInputStream(cursor.getBlob(5));
                       Drawable icon = Drawable.createFromStream(stream, "image");
                       user.setUserIcon(icon);
                  }
                  userList.add(user);
                  cursor.moveToNext();
              }
              cursor.close();
               return userList;
         }
     
         // 判断users表中的是否包含某个UserID的记录
         public Boolean HaveUserInfo(String UserId) {
              Boolean b = false;
              Cursor cursor = db.query(SqliteHelper. TB_NAME, null, UserInfo.USERID
                       + "=?", new String[]{UserId}, null, null, null );
              b = cursor.moveToFirst();
              Log. e("HaveUserInfo", b.toString());
              cursor.close();
               return b;
         }
     
         // 更新users表的记录,根据UserId更新用户昵称和用户图标
         public int UpdateUserInfo(String userName, Bitmap userIcon, String UserId) {
              ContentValues values = new ContentValues();
              values.put(UserInfo. USERNAME, userName);
               // BLOB类型
               final ByteArrayOutputStream os = new ByteArrayOutputStream();
               // 将Bitmap压缩成PNG编码,质量为100%存储
              userIcon.compress(Bitmap.CompressFormat. PNG, 100, os);
               // 构造SQLite的Content对象,这里也可以使用raw
              values.put(UserInfo. USERICON, os.toByteArray());
               int id = db.update(SqliteHelper. TB_NAME, values, UserInfo.USERID + "=?" , new String[]{UserId});
              Log. e("UpdateUserInfo2", id + "");
               return id;
         }
     
         // 更新users表的记录
         public int UpdateUserInfo(UserInfo user) {
              ContentValues values = new ContentValues();
              values.put(UserInfo. USERID, user.getUserId());
              values.put(UserInfo. TOKEN, user.getToken());
              values.put(UserInfo. TOKENSECRET, user.getTokenSecret());
               int id = db.update(SqliteHelper. TB_NAME, values, UserInfo.USERID + "="
                       + user.getUserId(), null);
              Log. e("UpdateUserInfo", id + "");
               return id;
         }
     
         // 添加users表的记录
         public Long SaveUserInfo(UserInfo user) {
              ContentValues values = new ContentValues();
              values.put(UserInfo. USERID, user.getUserId());
              values.put(UserInfo. TOKEN, user.getToken());
              values.put(UserInfo. TOKENSECRET, user.getTokenSecret());
              Long uid = db.insert(SqliteHelper. TB_NAME, UserInfo.ID, values);
              Log. e("SaveUserInfo", uid + "");
               return uid;
         }
         
         // 添加users表的记录
         public Long SaveUserInfo(UserInfo user, byte[] icon) {
              ContentValues values = new ContentValues();
              values.put(UserInfo. USERID, user.getUserId());
              values.put(UserInfo. USERNAME, user.getUserName());
              values.put(UserInfo. TOKEN, user.getToken());
              values.put(UserInfo. TOKENSECRET, user.getTokenSecret());
               if(icon!= null){
                  values.put(UserInfo. USERICON, icon);
              }
              Long uid = db.insert(SqliteHelper. TB_NAME, UserInfo.ID, values);
              Log. e("SaveUserInfo", uid + "");
               return uid;
         }
     
         // 删除users表的记录
         public int DelUserInfo(String UserId) {
               int id = db.delete(SqliteHelper. TB_NAME,
                       UserInfo. USERID + "=?", new String[]{UserId});
              Log. e("DelUserInfo", id + "");
               return id;
         }
         
         public static UserInfo getUserByName(String userName,List<UserInfo> userList){
              UserInfo userInfo = null;
               int size = userList.size();
               for( int i=0;i<size;i++){
                    if(userName.equals(userList.get(i).getUserName())){
                       userInfo = userList.get(i);
                        break;
                  }
              }
               return userInfo;
         }    
    }
  • 相关阅读:
    Nacos深入浅出(四)
    Nacos深入浅出(三)
    Nacos深入浅出(二)
    Nacos深入浅出(一)
    Mycat(1)
    redis事务
    git常用的方式
    redis主从复制
    redis持久化RDB和AOF
    Quartz
  • 原文地址:https://www.cnblogs.com/fx2008/p/3133211.html
Copyright © 2011-2022 走看看