分享磨砺营马剑威老师讲解-Android项目实战开发第三波,内含完整代码
2016-08-11 00:00
716 查看
上节课给大家讲解了引导页的使用,本节讲解xutils的使用,xutils共有四大模块。因为咱们要用它来保存数据库,如果用原生的SqliteOpenHelper比较繁琐,而且封装起来容易出问题,实际开发推荐使用ORM。下面就讲解下xutils数据库模块的使用。
xUtils 包含了很多实用的android工具.
xUtils 支持超大文件(超过2G)上传,更全面的http请求协议支持(11种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...
xUtils 最低兼容Android 4.0 (api level 14). (Android 2.3?)
xUtils3变化较多所以建立了新的项目不在旧版(github.com/wyouflf/xUtils)上继续维护, 相对于旧版本:
HTTP实现替换HttpClient为UrlConnection, 自动解析回调泛型, 更安全的断点续传策略.
支持标准的Cookie策略, 区分domain, path...
事件注解去除不常用的功能, 提高性能.
数据库api简化提高性能, 达到和greenDao一致的性能.
图片绑定支持gif(受系统兼容性影响, 部分gif文件只能静态显示), webp; 支持圆角, 圆形, 方形等裁剪, 支持自动旋转...
首先要导入compile 'org.xutils:xutils:3.3.36'
初始化需要在application
public class BaseApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
x.Ext.init(this);
}
}
然后需要使用DaoConfig,这里咱们要封装成util
public class DbUtil {
public synchronized static DbManager getDbManager(){
DbManager.DaoConfig daoConfig = new DbManager.DaoConfig()
.setDbName("moliying_user")
.setDbVersion(1);
DbManager db = x.getDb(daoConfig);
return db;
}
}
下面开始建立UserBean类,使用Bean加注解的方式直接生成数据库表
@Table(name = "UserModelBean")
public class UserModelBean {
@Column(name = "id",autoGen = true)
private int id;
@Column(name = "username",isId = true,autoGen = false)
private String username;
@Column(name = "password")
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
然后继续写UserBeanDao
public class UserModelDao {
public void saveUser(UserModelBean userModelBean) throws DbException {
DbUtil.getDbManager().save(userModelBean);
}
public UserModelBean selectUser(String username) throws DbException {
UserModelBean userModelBean = DbUtil.getDbManager().findById(UserModelBean.class, username);
if (userModelBean != null){
return userModelBean;
}else {
return null;
}
}
}
下面开始封装数据库接口
public interface LocalDataInterface {
/**
保存用户
@param userModelBean
*/
void saveUser(UserModelBean userModelBean);
/**
查询用户
@param username
@return
*/
UserModelBean selectUser(String username);
/**
保存事件
@param accountBean
<
7fe0
/li>
*/
void saveAccount(AccountBean accountBean);
/**
查询事件
@param username
@return
*/
AccountBean selectAccount(String username);
}
然后来实现这个接口
public class LocalDataModel implements LocalDataInterface{
private static LocalDataModel mLocalDataModel;
private static byte[] lock = new byte[0];
private UserModelDao mUserModelDao;
private AccountDao mAccountDao;
private LocalDataModel() {
mUserModelDao = new UserModelDao();
mAccountDao = new AccountDao();
}
public static LocalDataModel getInstance(){
synchronized (lock){
if (mLocalDataModel == null){
mLocalDataModel = new LocalDataModel();
}
return mLocalDataModel;
}
}
@Override
public void saveUser(UserModelBean userModelBean) {
try {
mUserModelDao.saveUser(userModelBean);
} catch (DbException e) {
e.printStackTrace();
}
}
@Override
public UserModelBean selectUser(String username) {
UserModelBean userModelBean = null;
try {
userModelBean = mUserModelDao.selectUser(username);
} catch (DbException e) {
e.printStackTrace();
}
return userModelBean;
}
@Override
public void saveAccount(AccountBean accountBean) {
try {
mAccountDao.saveAccount(accountBean);
} catch (DbException e) {
e.printStackTrace();
}
}
@Override
public AccountBean selectAccount(String username) {
AccountBean accountBean = null;
try {
accountBean = mAccountDao.selectAccount(username);
} catch (DbException e) {
e.printStackTrace();
}
return accountBean;
}
}
以上封装大家可以仔细看下,里面应该能学到不少东西,这样,数据库操作就只需要一行代码就搞定了,使用非常方便。
下面是示例:
//查询数据库
UserModelBean userModelBean = LocalDataModel.getInstance().selectUser(username);
//保存数据库
LocalDataModel.getInstance().saveUser(user);
Ok,下节课咱们就可以用到保存数据,本节课这里就封装好orm,具体的咱们下节继续,今天就到这里!!!
本文出自微信公众号mjw-java,更多内容关注微信公众号或访问www.moliying.com
相关文章推荐
- 分享磨砺营马剑威老师讲解-Android中AR应用开发技巧
- 分享磨砺营马剑威老师讲解-Android开发中相机录制视频的实现
- 分享磨砺营马剑威老师讲解-Android开发中多线程的使用
- 分享磨砺营马剑威讲解-android项目开发第二弹
- 分享磨砺营马剑威讲解-android项目开发第二弹
- 分享磨砺营马剑威老师讲解-Android开发技术点汇总
- 分享磨砺营马剑威讲解-Android项目实战第一弹
- 分享磨砺营马剑威老师讲解-Android机型适配
- 分享磨砺营马剑威老师讲解-Android N的新特性
- 分享磨砺营马剑威老师讲解-Android N的新特性
- 分享磨砺营马剑威老师讲解Android通信中几种交互方式
- Android项目实战开发第五炮(磨砺营马剑威)
- 分享磨砺营马剑威老师讲解-GridView如何实现上拉更多和下拉刷新
- 《磨砺书店》app项目开发技术点总结(磨砺营马剑威Android)
- 分享磨砺营马剑威老师讲解-Handler的几种创建方式
- 分享几款Android开发工具助力APP开发(磨砺营马剑威Android)
- 分享磨砺营马剑威老师讲解-okhttp的优点
- 【毕业设计】基于Android的家校互动平台开发(内含完整代码和所有文档)——爱吖校推(你关注的,我们才推)
- 分享磨砺营马剑威老师讲解-源码解析View事件的分发机制
- 分享磨砺营威哥讲解-Android开发过程中内存优化的几点总结