xUtils3.3.x数据库操作实例

XUtils3.0数据库操作心得 XUtils3.0学习心得 DB注释相关 1.加注了@Table的实体类将被映射到sqlite中的数据库表,@Table注解有属性name和onCreated两个属性,name属性决定了该实体类映射的数据库表名,而onCreated属性则可以用来添加表一级的属性或约束,例如创建联和唯一索引等 2.加注了@Column的实体类属性将会映射到sqlite数据库中的字段,@Column注解有nam 阅读详情

xUtils是国人开发的一款功能丰富的Android开发框架,主要包括网络请求、图片加载、数据库操作等模块,本章主要介绍xUtils3.3.x在数据库方面的使用。

要使用xUtils,需要首先在Application或主Activity中进行xUtils初始化,我的xUtils3.3.x的初始化和数据库的配置都是在Application中进行的,具体代码如下:

import android.app.Application;
import android.content.SharedPreferences;
import android.os.Environment;
import android.os.storage.StorageManager;
import android.util.Log;

import com.lnint.mediaplayer.utils.Constants;
import org.xutils.DbManager;
import org.xutils.x;
import java.io.File;
import java.lang.reflect.Method;

/**
 * xUtils3.3应用demo
 * Created by wangpf on 2017/7/1.
 */
public class MyApplication extends Application {
    private DbManager.DaoConfig daoConfig;
    private static MyApplication mInstance = null;

    public DbManager.DaoConfig getDaoConfig() {
        return daoConfig;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        mInstance = this;
        x.Ext.init(this);
        x.Ext.setDebug(BuildConfig.DEBUG);

        String rootPath = MyApplication.getExternalStoragePath();
        File dbFile = new File(rootPath + "/media/db/");
        daoConfig = new DbManager.DaoConfig()
                .setDbDir(dbFile)
                .setDbName("media_dbs")//创建数据库的名称
                .setDbVersion(1)//数据库版本号
                .setDbUpgradeListener(new DbManager.DbUpgradeListener() {
                    @Override
                    public void onUpgrade(DbManager db, int oldVersion, int newVersion) {
                        // db.addColumn(...);
                        // db.dropTable(...);
                        // ...
                    }
                });//数据库更新操作
    }......

我们以保存并查询视频文件的播放历史为例,重点讲解对表sys_play_his的增删改查操作。

由于xUtils是一个ORM框架,所以第一步工作就是基于表sys_play_his创建实体,具体代码如下:

实体BaseEntity

import org.xutils.db.annotation.Column;

/**
 * 实体BaseEntity
 * Created by wangpf on 2016/11/8.
 */

public class BaseEntity {
    //id
    @Column(name = "id", isId = true)
    private int id;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
}
数据库操作实体

import org.xutils.db.annotation.Column;
import org.xutils.db.annotation.Table;
import java.util.Date;

/**
 * 保存媒体文件播放历史
 * Created by wangpf on 2017/7/21.
 */
@Table(name = "sys_play_his")
public class PlayHisEntity extends BaseEntity {
    //文件名
    @Column(name = "fileName")
    private String fileName;
    //播放开始时间
    private Date startTime;
    //播放结束时间
    @Column(name = "endTime")
    private Date endTime;
    //广告机编号
    @Column(name = "equipNo")
    private String equipNo;
    //固件版本号
    @Column(name = "firmware")
    private String firmware;

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    ......
}


准备工作做好之后,就可以对数据库进行操作,具体操作如下:

(1)数据插入

DbManager db = x.getDb(((MyApplication)getApplicationContext()).getDaoConfig());
                try {
                    PlayHisEntity entity = new PlayHisEntity();
                    entity.setFileName("20170803120203.mp4");
                    entity.setEndTime(new Date());
                    entity.setFirmware("4.4.4");
                    db.saveBindingId(entity);
                }catch (DbException e) {
                    e.printStackTrace();
                }

(2)数据删除

DbManager db = x.getDb(MyApplication.getInstance().getDaoConfig());
        try {
            Date date = DateUtils.getLastDay(30);
            db.delete(PlayHisEntity.class, WhereBuilder.b("endTime","<=",date));
        }catch (DbException e) {
            e.printStackTrace();
        }

(3)数据查询

DbManager db = x.getDb(MyApplication.getInstance().getDaoConfig());
        try {
            if(StringUtils.isNotEmpty(playHisEntity.getFileName())) {//根据文件名查询
                List<DbModel> dbModels = new ArrayList<DbModel>();
                dbModels = db.selector(PlayHisEntity.class)
                        .where("fileName","like","%"+playHisEntity.getFileName()+"%")
                        .groupBy("fileName")
                        .select("fileName", "count(fileName) as count").findAll();

                List<VideoPlayEntity> playList = new ArrayList<VideoPlayEntity>();
                for(DbModel dbModel : dbModels) {
                    VideoPlayEntity entity = new VideoPlayEntity();
                    entity.setName(dbModel.getString("fileName"));
                    entity.setNum(dbModel.getInt("count"));
                    playList.add(entity);
                }
            }else if(playHisEntity.getStartTime() != null && playHisEntity.getEndTime() != null) {//根据时间查询
                List<DbModel> dbModels = db.selector(PlayHisEntity.class)
                        .where("endTime","between",new Date[]{playHisEntity.getStartTime(), playHisEntity.getEndTime()})
                        .groupBy("fileName")
                        .select("fileName", "count(fileName) as count").findAll();

                List<VideoPlayEntity> playList = new ArrayList<VideoPlayEntity>();
                for(DbModel dbModel : dbModels) {
                    VideoPlayEntity entity = new VideoPlayEntity();
                    entity.setName(dbModel.getString("fileName"));
                    entity.setNum(dbModel.getInt("count"));
                    playList.add(entity);
                }
            }
        }catch (DbException e) {
            e.printStackTrace();
        }

XUtils3框架的基本使用方法(一) XUtils3框架的基本使用方法今天给大家带来XUtils3的基本介绍,本文章的案例都是基于XUtils3的3.1.14版本进行的演示。相信大家对这个框架也都了解过,下面简单介绍下XUtils3的一些基本知识。 XUtils3一共有4大功能:注解模块,网络模块,图片加载模块,数据库模块。 使用XUtils只需要在libs文件夹里面加入一个jar包,如果对服务器返回的数据进行封装的话,还需要导入一 阅读详情

相关推荐

xUtils3中对Sqlite数据库的操作

前言xUtils是一款快速开发android移动应用的框架,其包含了很多实用的android工具. 目前xUtils主要有四大模块: DbUtils模块 ViewUtils模块 HttpUtils模块 BitmapUtils模块 xUtils项目github请见:xUtils 由于xUtils3 api变化较多, 已转至xUtils3 - 本文使用的xUtils版本

Kevin-go的专栏 3万+

数据库之xUtils:增删改查_表与表之间

xUtils数据库---增删改查(表与表之间)

芒果蜜桃π 2945

xUtils3 数据库操作

xUtils3 数据库操作,增删改查,单表多表查询,实体类中包含实体类、实体类列表的查询。

XUtils===XUtils3框架的基本使用方法(二)

转载自:http://blog.csdn.net/a1002450926/article/details/50364196上一篇文章,主要介绍了XUtil3的注解模块,网络模块,图片加载模块,今天给大家带来数据库模块的讲解,现在主流的ORM框架很多,比如OrmLite,GreenDao,Active Android,Realm等等,这些框架每个都有自己的优点和缺点,大家完全可以根据自己项目的实际需

qq_38080117的博客 359

Xutils3有关数据库的操作案例

Xutis3的数据库使用案例,实现了创建数据库,增删改查功能

UVM实战 卷I学习笔记1——简单的UVM验证平台:只有driver

目录验证平台的组成最简单的验证平台——只有driverUVM如何搭建driver:加入factory机制加入objection机制加入virtual interface 个人《UVM实战卷I》学习随手笔记,此书作者:张强 验证平台的组成 一个验证平台要实现的基本功能: 模拟DUT的各种真实使用情况——给DUT施加各种激励→driver实现激励功能; 根据DUT的输出判断DUT行为是否与预期符合→scoreboard(也称为checker)——需注意判断的东西和判断的标准是什么; 收集DUT的输出并传递

weixin_41979380的博客 3891

Android xUtils3.0使用手册(二) - 数据库操作

步骤: (1). 创建数据表; (2). DaoConfig 获取数据库的配置信息; (3). 获取数据库实例: x.getDb(daoConfig); (4). 数据库的增删改查。 1. 创建数据表 在这里要强调的是,数据库里面表的创建的时间,只有在你对数据库里面的操作涉及到这张表的操作时,会先判断当前的表是否存在,如果不存在,才会创建一张表,如果存在,才会进...

weixin_30561425的博客 188

村田电感模型选型指南:.s2p和SPICE netlist在ADS中的表现差异

本文深度解析了村田电感在ADS仿真中.s2p与SPICE netlist两种模型的表现差异。通过对比模型本质、仿真设置及高低频段精度,揭示了.s2p文件基于实测插值而SPICE netlist基于等效电路外推的特性。文章提供了明确的选型策略,帮助工程师根据项目频段、仿真类型和精度需求,在射频与微波电路设计中做出最优模型选择。

k9l0m1的博客 452

XUtils数据库使用小结

1、创建数据库: public class DBUtils { public static DbManager getDb() { DbManager.DaoConfig daoConfig = new DbManager.DaoConfig() .setDbName(BaseConstant.DB_NAME)

silence_jjj的专栏 960

使用MATLAB实时处理摄像头图像

本文介绍了如何使用MATLAB进行实时图像处理,包括从摄像头获取图像、对图像进行处理并显示处理结果。我们将演示如何使用MATLAB的图像处理工具箱来实现常见的图像处理任务,如图像增强、边缘检测和物体检测。

XsiJava的博客 921

微信小程序 - 实现Java微信支付退款功能以及退款流程,微信小程序前端+java后端完整示例源码,微信小程序退款功能详解,小程序订单申请退款和退款回调方法、查询退款等(新版微信支付,详细示例代码)

微信小程序开发-微信支付退款功能以及退款回调方法,微信支付退款API详解,微信小程序支付V3(支付、退款)Java实现微信小程序开发 小程序支付开发-小程序退款功能,微信小程序小程序和公众号 退款功能教程(含申请退款和退款回调,退款回调地址在商户后台配置或者代码自定义)最新版微信小程序支付,退款问题,小程序支付和退款功能详解,小程序申请退款,小程序处理退款,微信小程序支付与退款java,微信小程序退款及回调,JAVA实现微信小程序支付退款功能,退款api调用报错,如何解决退款申请无响应,如何用实现小程序订单

🏆 前端领域优质创作者 4159

关于xutils的使用

xUtils简介xUtils 包含了很多实用的android工具。 xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响... xUitls最低兼容android 2.2 (api level 8) 目前xUtils主要有四大模块: DbUtils(数据库)

qq_39834764的博客 1602

Android 9.0 SystemUI禁用长按recent键的分屏功能

​ 在9.0的系统产品开发中,系统对于多窗口模式默认会有分屏功能的,但是在某些产品中,需要禁用分屏模式,所以需要在导航栏中 禁用长按recent的分屏模式功能,接下来分析下相关分屏模式的实现 ​

安卓兼职framework和app工程师的博客 449

Xutils 3框架使用说明

Xutils 3相比xutils 2.x兼容性更好但较之前版本稍有变化,故对其用法做个说明:https://github.com/wyouflf/xUtils3 eclipse:下载aar并改为.zip解压, 取出jar包文件http://dl.bintray.com/wyouflf/maven/org/xutils/xutils/ androd-studio: compile 'o...

seven的博客 6618

华为OD机试真题 新系统 2026-05-13 Python&JS语言 实现【查找能被整除的最大整数】

给定一个字符串和一个正整数,字符串由大小写字母和数字组成,要求从字符串中找出最大且能被给定正整数整除的数。

MISAYAONE的博客 226

PyTorch深度学习实战(4)——常用激活函数和损失函数详解

激活函数和损失函数是深度学习模型中重要组成部分,激活函数和损失函数的选择很大程度上决定了深度神经网络的性能和精度,需要根据具体问题的特点和数据分布等因素进行选择。在本节中,将介绍深度学习中常见的激活函数和损失函数,并说明不同函数的常见应用场景。

盼小辉丶的博客 1万+

xUtils更新到3.0后的基本使用规则

说实话,对于Xutils,是我最近才用到的开发框架(也是刚接触),对于其功能不得不说,简化了很多的开发步骤,可以说是非常好的开发工具,但是其最近更新到3.0也没有解决加载自定义ImageView报错的问题。我总是喜欢用一些最新的东西,Xutils 3.0才刚更新,是一次比较大的重构,对于百度到的使用规则,基本都是3.0以前的,使得用3.0的开发者需要求解用法的时候,遇到许多阻碍,

李元静 3万+

光通量与辐射通量之间的换算

由理论和实验可知存在两种定义: 1W1W1W(瓦特)的频率为540×1012Hz540\times10^{12}Hz540×1012Hz(赫兹)的单色辐射的辐射通量等于683lm(流明)683lm(流明)683lm(流明).。 1lm1lm1lm的频率为540×1012Hz540\times10^{12}Hz540×1012Hz的单色通量等于1683=0.001464W\frac{1}{683}=0.001464W6831​=0.001464W。 从上述定义中我们可以得到什么呢?我们知道光速: c=3×

u011699626的博客 3273

Android数据库操作终极指南:xUtils3从入门到精通的完整实战

想要在Android应用中高效地处理数据库操作吗?xUtils3为你提供了简单、快速且功能强大的ORM解决方案!本文将为你详细介绍如何使用xUtils3进行Android数据库操作,从基础配置到高级查询技巧,让你轻松掌握这个轻量级但特性强大的数据库框架。 ## 为什么选择xUtils3进行Android数据库开发? xUtils3是一个集成了ORM、HTTP请求、图片加载和View注解的And

gitblog_01011的博客 725

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Android xUtils3使用 - 数据库操作

这篇主要记录xUtils3的DbUtils模块的用法 DbUtils模块:用于数据库的操作,也是需要注解方式指定表名和列名; 下面主要通过数据库的“增删改查”四步操作记录xUtils DbUtils模块的使用 步骤一:在应用中添加xUtils3框架的依赖 compile files('libs/xUtils-3.3.22.jar') ...

alex_wen2014的博客 595

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

xutils3的使用

xUtils3简介 xUtils 包含了很多实用的android工具.xUtils 支持超大文件(超过2G)上传,更全面的http请求协议支持(11种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...xUtils 最低兼容Android 4.0 (api level 14). (Android 2.3?)xUtils3变化较多所以建立了新的项目不在旧版(github.com

andnr003的专栏 3335

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Android xUtils框架最全使用详解

这里写目录标题xUtils3简介xUtils使用方法使用前准备xUtils访问网络不带参数带参数的请求xUitls框架-加载网络图片xUitls框架注解布局文件注解控件注解点击事件注解 xUtils3简介 xUtils 包含了orm, http(s), image, view注解, 但依然很轻量级(251K), 并且特性强大, 方便扩展. 官网:https://github.com/wyouflf...

lucashu的博客 1万+

xutil的使用,浅谈xUtils3的基本使用方法

Xutils3,分四大模块,view,数据库模块,图片模块,网络模块: 第一步,添加jar包:xUtils-3.3.22.jar,这个百度一下,免费下载很多,这里就不贴出来了。add as library, 第二步,在你的app中进行绑定并初始化,创建MyApp继承自Applacation,记得在清单文件中进行声明: public class MyApp extends Applicat

世界流浪者的博客 2118

xUtils3的简单使用

1.xUtils3简介xUtils3 是 xUtils 的升级版,功能和性能都在提高, xUtils3 主要有四大模块:注解模块,联网模块,图片加载模块,数据库模块;注解模块: 用于在 Activity 或者 Fragment 中初始化布局文件,便于代码更加简洁;联网模块: xUtils3 支持超大文件(超过 2G)上传,更全面的 http请求协议支持(11种谓词), 拥有更加灵活的 ORM,

俊光的专栏 949

xutils3.0

package applacation; import android.app.Application; import org.xutils.BuildConfig; import org.xutils.DbManager; import org.xutils.ex.DbException; import org.xutils.x; import baway.com.xutilstext.L

YueJunFei的博客 506

xUtils3 常见问题解决方案

xUtils3 是一个轻量级的 Android 开发工具库,主要使用 Java 语言编写。它包含了 ORM(对象关系映射)、HTTP(S) 请求、图片加载和视图注入等功能,旨在简化 Android 开发过程中的常见任务。xUtils3 的设计目标是保持轻量级的同时提供强大的功能,方便开发者扩展和定制。 ## 新手使用注意事项及解决方案 ### 1. 依赖引入问题 **问题描述**:新手在使用...

gitblog_00012的博客 418
上一篇: 使用MyBatis数组参数出现异常There is no getter for property named '__frch_customId_0'
下一篇: Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
wangpf2011
博客等级 码龄16年 71粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值