Android-xUtils-數據庫(db)的使用+本地數據庫內容查看方式

最近在項目中用到了數據庫的操作,項目完成後,在此記錄一下使用xUtils框架數據庫類的使用以及查看手機本地數據庫內容的方法。
一:使用方法

1.添加依賴:

implementation 'org.xutils:xutils:3.3.40'

2.在全局變量中註冊xUtils,並且獲取數據庫的管理器,通過此管理器對數據庫進行增刪改查(要注意的是全局變量需要在AndroidManifest中去添加屬性)
全局變量設置方法超鏈接

public class BaseContext extends Application {
    private static volatile Context mContext;
    private static BaseContext instance;
    public static BaseContext getInstance() {
        return instance;
    }
    public void onCreate() {
        super.onCreate();
        //註冊xUtils
        x.Ext.init(this);
        mContext = getApplicationContext();
        instance = this;
    }
    public static Context getContext() {
        return mContext;
    }
    /**
     * @return 獲得數據庫的管理器,通過這個管理器對數據庫進行增刪改查
     */
    public DbManager dbManager(){
        DbManager.DaoConfig daoConfig = new DbManager.DaoConfig();
        //設置數據庫的名字
        daoConfig.setDbName("image.db");
        //設置數據庫的版本號,默認爲1
        //daoConfig.setDbVersion(1);
        return x.getDb(daoConfig);
    }
}

3.數據庫中需要有表,以及表中的參數,下面來設置
User類

//設置數據庫表的名字
@Table(name = "imageinfo")
public class User {
	@Column(name = "imageurl")
    private String imageurl;
    @Column(name = "imagetime")
    private String imagetime;
    @Column(name = "imagehashcode")
    private String imagehashcode;
    @Column(name = "imagehandle")
    private String imagehandle;
    @Column(name = "id", isId = true, autoGen = true)//註釋列名主鍵,主動增長
    private int id;
    public String getImageurl() {
        return imageurl;
    }

    public String getImagetime() {
        return imagetime;
    }

    public String getImagehashcode() {
        return imagehashcode;
    }

    public String getImagehandle() {
        return imagehandle;
    }

    public void setImageurl(String imageurl) {
        this.imageurl = imageurl;
    }

    public void setImagetime(String imagetime) {
        this.imagetime = imagetime;
    }

    public void setImagehashcode(String imagehashcode) {
        this.imagehashcode = imagehashcode;
    }

    public void setImagehandle(String imagehandle) {
        this.imagehandle = imagehandle;
    }
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
    
    public int getState() {
        return state;
    }

    public void setState(int state) {
        this.state = state;
    }
    @Column(name = "state")
    private int state;

    @NonNull
    @Override
    public String toString() {
        return "{" +
                "imageurl='" + imageurl + '\'' +
                ", id=" + id +
                ", imagetime='" + imagetime + '\'' +
                ", imagehashcode=" + imagehashcode +
                ", state=" + state +
                ", imagehandle='" + imagehandle + '\'' +
                '}';
    }
}

這樣一個數據庫在程序啓動的時候就創建好了。
4.下面介紹對數據庫的操作
(1)添加數據:

 //將數據保存到數據庫中
DbManager dbManager = BaseContext.getInstance().dbManager();
User user = new User();
user.setImageurl(address);
user.setImagetime(exifInterface.getAttribute(ExifInterface.TAG_DATETIME));
user.setImagehashcode(String.valueOf(objectInfo.hashCode()));
user.setImagehandle(String.valueOf(objectHandle));
user.setState(1);
dbManager.save(user);

(2)刪除數據:
刪除所有數據:

DbManager manager = BaseContext.getInstance().dbManager();
            try {
                manager.delete(User.class);
            } catch (DbException e) {
                e.printStackTrace();
            }

刪除指定數據:

//刪除imageurl=1的數據
DbManager dbManager = BaseContext.getInstance().dbManager();
        try {
            dbManager.delete(User.class,WhereBuilder.b("imageurl","=","1"));
        } catch (DbException e) {
            e.printStackTrace();
        }

刪除指定id的數據:

DbManager dbManager = BaseContext.getInstance().dbManager();
        try {
            dbManager.deleteById(User.class,1);
        } catch (DbException e) {
            e.printStackTrace();
        }

(3)修改數據:

//修改imageurl = address的state爲3
try {
         DbManager dbManager = BaseContext.getInstance().dbManager();
         WhereBuilder whereBuilder = WhereBuilder.b();
         whereBuilder.and("imageurl", "=", address); 
         dbManager.update(User.class, whereBuilder, new KeyValue("state", 3));
      } catch (DbException e) {
          e.printStackTrace();
 }

(4)查找數據:
查找所有內容:

 DbManager dbManager = BaseContext.getInstance().dbManager();
            try {
                List<User> all = dbManager.findAll(User.class);
                for (int i = 0; i < all.size(); i++) {
                    Log.e("TAG", all.get(i).toString());//打印顯示
                }
            } catch (DbException e) {
                e.printStackTrace();
            }

查找指定內容:
我這裏查找imageurl=fileString與state=1的所有數據,查到後,將其添加到imagePaths中

DbManager dbManager = BaseContext.getInstance().dbManager();
                List<User> imageMessage = null;
                try {
                    imageMessage = dbManager.selector(User.class).where("imageurl", "=", fileString).and("state","=",1).findAll();
                    if (imageMessage == null || imageMessage.size() == 0){
                        continue;
                    }else {
                        User user = imageMessage.get(0);
                        String imageurl = user.getImageurl();
                        imagePaths.add(imageurl);
                    }
                } catch (DbException e) {
                    e.printStackTrace();
                }

(5)刪除數據庫:

 DbManager dbManager = BaseContext.getInstance().dbManager();
        try {
            dbManager.dropDb();
        } catch (DbException e) {
            e.printStackTrace();
        }

(6)刪除表:

DbManager dbManager = BaseContext.getInstance().dbManager();
        try {
            dbManager.dropTable(User.class);
        } catch (DbException e) {
            e.printStackTrace();
        }

(7)往表中添加新字段:

DbManager dbManager = BaseContext.getInstance().dbManager();
        try {
            dbManager.addColumn(User.class,"test");
        } catch (DbException e) {
            e.printStackTrace();
        }

上面對於數據庫的操作,大家大可以在項目中根據自己的需求寫一個工具類,操作起來比較方便。
二:查看數據庫內容
對於數據的查看,之前在網上找了一個軟件(SQLiteStudio),附上下載地址,以及步驟。

鏈接:https://pan.baidu.com/s/1zCjK-qFEOcdUv13bXLBvkQ
提取碼:ws6z

我的Android Studio版本爲3.5.2。
保證你的手機有保存的數據庫,將手機連接到電腦。
(1)點擊右側的Device File Explorer
在這裏插入圖片描述
依次打開data-data-應用包名
在這裏插入圖片描述
右鍵點擊image.db(image爲你設置的數據庫名字),點擊Save As…將其保存在電腦上。
(2)將下載的SQLiteStudio進行解壓,找到
在這裏插入圖片描述
打開,點擊左上角數據庫-添加數據庫(快捷鍵Ctrl+O),出現如下界面

在這裏插入圖描述
選擇你下載的後綴名爲db的數據庫,點擊Ok將其打開。
(3)
在這裏插入圖片描述
這裏的imageinfo爲保存的數據庫的表名,雙擊在右側即可查看數據庫內容
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章