package iot.b19060630.mybill.database;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import java.util.ArrayList;
import java.util.List;
import iot.b19060630.mybill.utils.FloatUtils;
/*
* 负责管理数据库的类
* 主要对于表当中的内容进行操作,增删改查
* */
public class DBManager {
private static SQLiteDatabase db;
/* 初始化数据库对象*/
public static void initDB(Context context){
DBOpenHelper helper = new DBOpenHelper(context); //得到帮助类对象
db = helper.getWritableDatabase(); //得到数据库对象
}
/**
* 读取数据库当中的数据,写入内存集合里
* kind :表示收入或者支出
* */
public static List<TypeBean>getTypeList(int kind){
List<TypeBean>list = new ArrayList<>();
//读取typetb表当中的数据
String sql = "select * from typetb where kind = "+kind;
Cursor cursor = db.rawQuery(sql, null);
// 循环读取游标内容,存储到对象当中
while (cursor.moveToNext()) {
String typename = cursor.getString(cursor.getColumnIndexOrThrow("typename"));
int imageId = cursor.getInt(cursor.getColumnIndexOrThrow("imageId"));
int sImageId = cursor.getInt(cursor.getColumnIndexOrThrow("sImageId"));
int kind1 = cursor.getInt(cursor.getColumnIndexOrThrow("kind"));
int id = cursor.getInt(cursor.getColumnIndexOrThrow("id"));
TypeBean typeBean = new TypeBean(id, typename, imageId, sImageId, kind);
list.add(typeBean);
}
return list;
}
/*
* 向记账表当中插入一条元素
* */
public static void insertItemToAccounttb(AccountBean bean){
ContentValues values = new ContentValues();
values.put("typename",bean.getTypename());
values.put("sImageId",bean.getsImageId());
values.put("beizhu",bean.getBeizhu());
values.put("money",bean.getMoney());
values.put("time",bean.getTime());
values.put("year",bean.getYear());
values.put("month",bean.getMonth());
values.put("day",bean.getDay());
values.put("kind",bean.getKind());
db.insert("accounttb",null,values);
}
/*
* 获取记账表当中某一天的所有支出或者收入情况
* */
public static List<AccountBean>getAccountListOneDayFromAccounttb(int year,int month,int day){
List<AccountBean>list = new ArrayList<>();
String sql = "select * from accounttb where year=? and month=? and day=? order by id desc";
Cursor cursor = db.rawQuery(sql, new String[]{year + "", month + "", day + ""});
//遍历符合要求的每一行数据
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndexOrThrow("id"));
String typename = cursor.getString(cursor.getColumnIndexOrThrow("typename"));
String beizhu = cursor.getString(cursor.getColumnIndexOrThrow("beizhu"));
String time = cursor.getString(cursor.getColumnIndexOrThrow("time"));
int sImageId = cursor.getInt(cursor.getColumnIndexOrThrow("sImageId"));
int kind = cursor.getInt(cursor.getColumnIndexOrThrow("kind"));
float money = cursor.getFloat(cursor.getColumnIndexOrThrow("money"));
AccountBean accountBean = new AccountBean(id, typename, sImageId, beizhu, money, time, year, month, day, kind);
list.add(accountBean);
}
return list;
}
/*
* 获取记账表当中某一月的所有支出或者收入情况
* */
public static List<AccountBean>getAccountListOneMonthFromAccounttb(int year,int month){
List<AccountBean>list = new ArrayList<>();
String sql = "select * from accounttb where year=? and month=? order by id desc";
Cursor cursor = db.rawQuery(sql, new String[]{year + "", month + ""});
//遍历符合要求的每一行数据
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndexOrThrow("id"));
String typename = cursor.getString(cursor.getColumnIndexOrThrow("typename"));
String beizhu = cursor.getString(cursor.getColumnIndexOrThrow("beizhu"));
String time = cursor.getString(cursor.getColumnIndexOrThrow("time"));
int sImageId = cursor.getInt(cursor.getColumnIndexOrThrow("sImageId"));
int kind = cursor.getInt(cursor.getColumnIndexOrThrow("kind"));
float money = cursor.getFloat(cursor.getColumnIndexOrThrow("money"));
int day = cursor.getInt(cursor.getColumnIndexOrThrow("day"));
AccountBean accountBean = new AccountBean(id, typename, sImageId, beizhu, money, time, year, month, day, kind);
list.add(accountBean);
}
return list;
}
/**
* 获取某一天的支出或者收入的总金额 kind:支出==0 收入===1
* */
public static float getSumMoneyOneDay(int year,int month,int day,int kind){
float total = 0.0f;
String sql = "select sum(money) from accounttb where year=? and month=? and day=? and kind=?";
Cursor cursor = db.rawQuery(sql, new String[]{year + "", month + "", day + "", kind + ""});
// 遍历
if (cursor.moveToFirst()) {
float money = cursor.getFloat(cursor.getColumnIndexOrThrow("sum(money)"));
total = money;
}
return total;
}
/**
* 获取某一月的支出或者收入的总金额 kind:支出==0 收入===1
* */
public static float getSumMoneyOneMonth(int year,int month,int kind){
float total = 0.0f;
String sql = "select sum(money) from accounttb where year=? and month=? and kind=?";
Cursor cursor = db.rawQuery(sql, new String[]{year + "", month + "", kind + ""});
// 遍历
if (cursor.moveToFirst()) {
float money = cursor.getFloat(cursor.getColumnIndexOrThrow("sum(money)"));
total = money;
}
return total;
}
/** 统计某月份支出或者收入情况有多少条 收入-1 支出-0*/
public static int getCountItemOneMonth(int year,int month,int kind){
int total = 0;
String sql = "select count(money) from accounttb where year=? and month=? and kind=?";
Cursor cursor = db.rawQuery(sql, new String[]{year + "", month + "", kind + ""});
if (cursor.moveToFirst()) {
int count = cursor.getInt(cursor.getColumnIndexOrThrow("count(money)"));
total = count;
}
return total;
}
/*
* 根据传入的id,删除accounttb表当中的一条数据
* */
public static int deleteItemFromAccounttbById(int id){
int i = db.delete("accounttb", "id=?", new String[]{id + ""});
return i;
}
/**
* 查询记账的表当中有几个年份信息
* */
public static List<Integer>getYearListFromAccounttb(){
List<Integer>list = new ArrayList<>();
String sql = "select distinct(year) from accounttb order by year asc";
Cursor cursor = db.rawQuery(sql, null);
while (cursor.moveToNext()) {
int year = cursor.getInt(cursor.getColumnIndexOrThrow("year"));
list.add(year);
}
return list;
}
/*
* 删除accounttb表格当中的所有数据
* */
public static void deleteAllAccount(){
String sql = "delete from accounttb";
db.execSQL(sql);
}
/**
* 查询指定年份和月份的收入或者支出每一种类型的总钱数
* */
public static List<ChartItemBean>getChartListFromAccounttb(int year,int month,int kind){
List<ChartItemBean>list = new ArrayList<>();
float sumMoneyOneMonth = getSumMoneyOneMonth(year, month, kind); //求出支出或者收入总�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
安卓移动开发课程设计/Android期末大作业,记账软件+源代码+文档说明 - 运行中有什么问题可以私聊博主,本人高级安卓工程师,主页置顶有常见爆红解决的方法,以及更多代码项目 ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 -------- -------------------------------------------------------------------------------------
资源推荐
资源详情
资源评论
收起资源包目录
安卓移动开发课程设计/Android期末大作业,记账app+源代码+文档说明 (168个子文件)
gradlew.bat 3KB
.gitignore 225B
.gitignore 47B
.gitignore 6B
build.gradle 1KB
settings.gradle 323B
build.gradle 291B
gradlew 6KB
gradle-wrapper.jar 58KB
DBManager.java 9KB
MainActivity.java 8KB
BaseRecordFragment.java 7KB
CalendarDialog.java 6KB
MonthChartActivity.java 5KB
SelectTimeDialog.java 5KB
HistoryActivity.java 4KB
BudgetDialog.java 4KB
DBOpenHelper.java 4KB
KeyBoardUtils.java 3KB
BeiZhuDialog.java 3KB
MoreDialog.java 3KB
AccountAdapter.java 3KB
ChartItemAdapter.java 2KB
AccountBean.java 2KB
CalendarAdapter.java 2KB
RecordActivity.java 2KB
TypeBaseAdapter.java 2KB
BaseChartFragment.java 2KB
SettingActivity.java 2KB
TypeBean.java 1KB
ChartItemBean.java 1014B
RecordPagerAdapter.java 895B
IncomChartFragment.java 800B
OutcomeFragment.java 758B
ExampleInstrumentedTest.java 754B
IncomeFragment.java 742B
ChartVPAdapter.java 687B
FloatUtils.java 626B
OutcomChartFragment.java 564B
ExampleUnitTest.java 381B
UniteApp.java 349B
edit_btn_bg2.png 201KB
details.png 120KB
edit_btn_bg.png 41KB
i2.png 15KB
ic_icon1.png 6KB
ic_tongxun.png 4KB
ic_tongxun_fs.png 4KB
ic_xuexi_fs.png 3KB
ic_xuexi.png 3KB
in_shouzhai_fs.png 3KB
in_lixifuji_fs.png 3KB
in_lixifuji.png 3KB
in_shouzhai.png 3KB
in_xinzi_fs.png 3KB
in_xinzi.png 3KB
it_searchtext.png 3KB
it_rili.png 2KB
in_touzi_fs.png 2KB
in_touzi.png 2KB
in_yiwai.png 2KB
in_yiwai_fs.png 2KB
in_ershoushebei_fs.png 2KB
in_ershoushebei.png 2KB
it_shezhi.png 2KB
in_jiangjin.png 2KB
in_jiangjin_fs.png 2KB
ic_yule_fs.png 2KB
in_shezhi.png 2KB
in_shezhi_fs.png 2KB
ic_yule.png 2KB
in_jieru.png 2KB
in_jieru_fs.png 2KB
ic_gouwu_fs.png 2KB
ic_renqingwanglai_fs.png 2KB
it_guanyu.png 2KB
ic_riyongpin_fs.png 2KB
ic_gouwu.png 2KB
ic_shicai_fs.png 2KB
ic_renqingwanglai.png 2KB
it_xiqing.png 2KB
ic_shuidianfei_fs.png 2KB
in_qt_fs.png 2KB
ic_jiaotong_fs.png 2KB
ic_shicai.png 1KB
ic_riyongpin.png 1KB
ic_fushi_fs.png 1KB
ic_canyin_fs.png 1KB
ic_yanjiu_fs.png 1KB
ic_yiliao_fs.png 1KB
ic_shuidianfei.png 1KB
ic_qita_fs.png 1KB
ic_jiaotong.png 1KB
in_qt.png 1KB
ic_fushi.png 1KB
ic_yiliao.png 1KB
ic_canyin.png 1KB
ic_zhufang_fs.png 1KB
ic_qita.png 1KB
ic_yanjiu.png 1KB
共 168 条
- 1
- 2
资源评论
Android安卓科研室
- 粉丝: 1515
- 资源: 1165
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- YOLOV4-TINY权重文件
- 以下是一个使用贪心算法解决多机调度问题的基本步骤0.txt
- 基于大数据的房产估价是近年来随着技术的发展而兴起的一种新型估价方法.txt
- 企业供应链管理系统v3.rar
- 富芮坤FR8016HA蓝牙开发板使用手册+硬件PCB图+封装库+DEMO演示软件源代码.zip
- 基于YOLOv7的芯片表面缺陷检测系统
- 京东物流 数字化供应链综合研究报告2018.rar
- 基于YOLOv7的植物虫害识别&防治系统
- 2000.1-2023.8中国经济政策不确定性指数月度数据.xlsx
- Screenshot_2024-04-21-20-42-15-443_com.tencent.mm.jpg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功