android的数据库比较多,有系统自带的,用起来也不是很麻烦。但是数据库的升级却是一大麻烦,每次版本更新的时候要升级数据库都很痛苦。那么怎么解决呢?现在就向大家介绍一款非常简便的数据库LitePal。
一、首先可以到网上去下载LitePal.jar放到自己的libs中。然后添加配置文件,如下图
配置文件的内容如下
<?xml version="1.0" encoding="utf-8"?> <litepal> <dbname value="数据库名" /> <version value="数据库版本" /> <list> <mapping class="com.shuowan.able.History"/>//数据表对应的类 </list> </litepal>
二、然后时建立自己的数据表对应的类,类里面的每个成员变量就是数据库的字段。而且每个成员变量都要实现
get和set方法,修饰符一定要为public。这个数据库就会自己创建了。
public class BaseGameInfoBean extends DataSupport{//要继承DataSupport public String gameId;//游戏id public String gameName;//游戏名称 public String pkgName;//包名 public String gameVersionName;//版本名称 public int versionCode;//版本号 public String gameDownloadUrl;//下载地址 public long gameSize;//文件大小 public String gameIconUrl;//图标 public String gameDownloadNum;//下载次数(等于使用用户数) public String getGameId() { return gameId; } public void setGameId(String gameId) { this.gameId = gameId; } public String getGameName() { return gameName; } public void setGameName(String gameName) { this.gameName = gameName; } public String getPkgName() { return pkgName; } public void setPkgName(String pkgName) { this.pkgName = pkgName; } public String getGameVersionName() { return gameVersionName; } public void setGameVersionName(String gameVersionName) { this.gameVersionName = gameVersionName; } public int getVersionCode() { return versionCode; } public void setVersionCode(int versionCode) { this.versionCode = versionCode; } public String getGameDownloadUrl() { return gameDownloadUrl; } public void setGameDownloadUrl(String gameDownloadUrl) { this.gameDownloadUrl = gameDownloadUrl; } public String getGameIconUrl() { return gameIconUrl; } public void setGameIconUrl(String gameIconUrl) { this.gameIconUrl = gameIconUrl; } public long getGameSize() { return gameSize; } public void setGameSize(long gameSize) { this.gameSize = gameSize; } }三、最后就是数据的增删改查
1.增加数据直接调用BaseGameInfoBean的.save()方法就可以了。这个对象就的数据就被插入了数据库。
2.删除数据
比如删除gameDownloadUrl== url的数据则DataSupport.deleteAll(BaseGameInfoBean.class, "gameDownloadUrl like ? ", url);多条件删除,比如删除gameDownloadUrl == url,而且gameId == 5的数据则DataSupport.deleteAll(BaseGameInfoBean.class, "gameDownloadUrl like ? and gameId= ?",url,"5");
或条件直接将and 改成or就行了。
3.改数据(改哪个字段传哪个字段,其他默认不改)
ContentValues contentValues = new ContentValues(); contentValues.put("state", 1); DataSupport.updateAll(BaseGameInfoBean.class, contentValues, "state = ? ", String.valueOf(DownloadManager.DOWNLOADING));4.查数据比如查找pkgName == pkg的数据则
List<DownloadGameInfoBean> apkInfoBeans =
DataSupport.where("pkgName like ? ", pkg).limit(1).find(BaseGameInfoBean.class);四、数据库升级数据库升级比较简单,只要在配置文件中<version value="数据库版本" />,数据库版本加1就行了。