首页 > 其他分享 >家庭记账本(八)

家庭记账本(八)

时间:2024-01-27 15:23:54浏览次数:32  
标签:String rs money 家庭 state 记账 sql id

3.持久化Dao层

1 package com.wang.dao;
  2 
  3 import java.math.BigDecimal;
  4 import java.sql.Connection;
  5 import java.sql.ResultSet;
  6 import java.sql.SQLException;
  7 import java.sql.Statement;
  8 import java.util.ArrayList;
  9 import java.util.List;
 10 
 11 import com.wang.pojo.HomeCost;
 12 import com.wang.utils.DBUtils;
 13 
 14 public class HomeCostDao {
 15     
 16     /**
 17      * updatesql()用来执行 insert/update/delete语句
 18      * @param sql 具体的sql语句
 19      * @return 返回-1,说明执行失败;否则为影响数据条数
 20      */
 21     public int updatesql(String sql) {
 22         Connection conn = DBUtils.getConn();//获取连接对象
 23         Statement state = null;
 24         try {
 25             state = conn.createStatement();
 26             return state.executeUpdate(sql);
 27         } catch (Exception e) {
 28             e.printStackTrace();
 29         } finally {
 30             DBUtils.close(state, conn);
 31         }
 32         return -1;       
 33     }
 34     
 35     
 36     //添加
 37     public int add(HomeCost homecost) {
 38         //insert语句,形如insert into 表名(字段1,字段2) values('值1','值2');
 39         String sql = "insert into home(name,money) values('"+ homecost.getName() 
 40             + "','" + homecost.getMoney() +  "')";
 41         return updatesql(sql);
 42     }
 43     
 44     //删除
 45     public int delete (int id) {
 46         //delete语句,形如delete from 表名 where id='值';
 47         String sql = "delete from home where id='" + id + "'";
 48         return updatesql(sql);
 49     }
 50      
 51     //修改
 52     public int update(HomeCost homecost) {
 53         //update语句,形如update 表名 set 字段1 = '值1',字段2 = '值2'where id = '值3';
 54         String sql = "update home set name='" + homecost.getName() + "', money='" 
 55                 + homecost.getMoney()+ "' where id='" + homecost.getId() + "'";
 56         return updatesql(sql);
 57         
 58     }
 59     
 60     //查询
 61     public List<HomeCost> query(String keyword) {
 62         String sql = "select * from home WHERE name LIKE '%"+keyword+"%' OR money LIKE '%"+keyword
 63                 +"%'OR date LIKE '%"+keyword+ "%'";
 64         List<HomeCost> list = new ArrayList<>();
 65         Connection conn = DBUtils.getConn();
 66         Statement state = null;
 67         ResultSet rs = null;
 68         try {
 69             state = conn.createStatement();
 70             rs = state.executeQuery(sql);
 71             while (rs.next()) {
 72                 int id = rs.getInt("id");//获取查询结果中的id
 73                 String name = rs.getString("name");//获取查询结果中的name
 74                 BigDecimal money = rs.getBigDecimal("money");//获取查询结果中的money
 75                 String date = rs.getString("date");//获取查询结果中的date
 76                 HomeCost homeCost = new HomeCost(id,name,money,date);//调用构造方法赋值
 77                 list.add(homeCost);//添加到list集合中
 78             }
 79         } catch (SQLException e) {
 80             e.printStackTrace();
 81         } finally {
 82             DBUtils.close(rs, state, conn);
 83         }
 84         return list;
 85     }
 86     
 87     //通过id找到某条信息
 88     public HomeCost getHomeCostById(int id) {
 89         String sql = "select * from home where id ='" + id + "'";
 90         Connection conn = DBUtils.getConn();
 91         Statement state = null;
 92         ResultSet rs = null;
 93         HomeCost homeCost = null;
 94         try {
 95             state = conn.createStatement();
 96             rs = state.executeQuery(sql);
 97             while (rs.next()) {
 98                 String name = rs.getString("name");
 99                 BigDecimal money = rs.getBigDecimal("money");
100                 String date = rs.getString("date");
101                 homeCost = new HomeCost(id,name,money,date);         
102             }
103         } catch (Exception e) {
104             e.printStackTrace();
105         } finally {
106             DBUtils.close(rs, state, conn);
107         }
108         return homeCost;
109     }
110     
111     /**
112      * 通过id计算该条消费记录累计消费金额
113      * @return BigDecimal类型money
114      */
115     public BigDecimal queryMoneySum(int id) {
116         String sql = "select money from home where id <="+id;
117         BigDecimal sum = new BigDecimal("0.00");
118         Connection conn = DBUtils.getConn();
119         Statement state = null;
120         ResultSet rs = null;
121         try {
122             state = conn.createStatement();
123             rs = state.executeQuery(sql);
124             while (rs.next()) {
125                 BigDecimal money = rs.getBigDecimal("money");
126                 //sum是money累加值
127                 sum = sum.add(money);
128             }
129         } catch (SQLException e) {
130             e.printStackTrace();
131         } finally {
132             DBUtils.close(rs, state, conn);
133         }
134         return sum;
135     }
136          
137     //获取全部数据  
138     public List<HomeCost> list() {
139         String sql = "select * from home";
140         List<HomeCost> list = new ArrayList<>();
141         Connection conn = DBUtils.getConn();
142         Statement state = null;
143         ResultSet rs = null;
144         try {
145             state = conn.createStatement();
146             rs = state.executeQuery(sql);
147             HomeCost homeCost = null;
148             while (rs.next()) {
149                 int id = rs.getInt("id");
150                 BigDecimal sum = queryMoneySum(id);
151                 String name = rs.getString("name");
152                 BigDecimal money = rs.getBigDecimal("money");
153                 String date = rs.getString("date");
154                 homeCost = new HomeCost(id,name,money,date,sum);
155                 list.add(homeCost);
156             }
157         } catch (SQLException e) {
158             e.printStackTrace();
159         } finally {
160             DBUtils.close(rs, state, conn);
161         }
162         return list;
163     }
164     
165     
166 }

HomeCostDao.java

 

标签:String,rs,money,家庭,state,记账,sql,id
From: https://www.cnblogs.com/azure011328/p/17991482

相关文章

  • 家庭记账本(九)
    4.事务层Service层1packagecom.wang.service;23importjava.util.List;45importcom.wang.dao.HomeCostDao;6importcom.wang.pojo.HomeCost;78publicclassHomeCostService{910HomeCostDaohomeCostDao=newHomeCostDao();1112......
  • 家庭记账本(十)
    5.Web层Servlet层Servlet创建方式:项目名右键new--Servlet,使用@WebServlet注解,省去配置web.xml的时间1packagecom.wang.web;23importjava.io.IOException;4importjava.math.BigDecimal;5importjava.util.List;67importjavax.servlet.ServletExce......
  • 家庭记账本(一)
    1..主页1<%@pagecontentType="text/html;charset=UTF-8"language="java"%>2<!DOCTYPEhtml>3<html>4<head>5<metacharset="UTF-8">6<title>家庭记账本主页</title>7&l......
  • 安卓家庭记账本开发笔记2
    开发进度:完成app首页的每条支出的流水信息的绘制以及首页记录每月收入和支出总和的表头的绘制代码:1.流水信息的代码:<?xmlversion="1.0"encoding="utf-8"?><RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_widt......
  • 安卓家庭记账本开发笔记1
    项目目的:开发一个简单的记账本app开发进度:在idea程序中创建一个空项目,绘制家庭记账本的主界面。创建空项目的步骤之后会整理单独发一篇博客。下面是绘制主界面的代码:<?xmlversion="1.0"encoding="utf-8"?><RelativeLayoutxmlns:android="http://schemas.android.co......
  • 绿联DH2600将米家设备同步到苹果家庭app(HA)
    方案是通过homekit桥生成一个二维码,然后使用苹果家庭app扫码添加设备进入HA下载homekit桥选择homekitbridge点击提交继续提交点击完成新增的修改集成条目名称(防止你分不清)重命名3.添加设备点击选项如图选择属于客厅的设备4.手机扫码第三步添......
  • 孩子从小生长在知识分子的家庭,或者传统的书香门第,家里规矩多管教严格,会对孩子性格造成
    农家子弟 单亲家庭 农耕之家    工薪阶层 农民工  中国旧社会的人总爱是“穷有穷根,富有富根”、“龙生龙,凤生凤,老鼠儿子会打洞”,现在这些老话都被推翻了,都说这是封建血统论和封建门第观。可是事实胜过强辩,我们发现民国学者大多是出身于书香门第和富贵之家。孩......
  • 不用找电工自己就能搞定家庭常见开关插座灯泡接线
    1线火线:简写L,英文全称是Live,一般是红色的线。零线:简写N,英文全称是Neutral,一般是蓝色的线。地线:一般用符号代替,,一般是黄色的线。火线用测电笔带电。火线和零线形成回路,负载就会工作。一般插座用1.5平方的线,家里电器一般用2.5平方的线。2开关(单控)接线原理图:开关控......
  • 家庭者,人生最初之学校也
    家长,请当好孩子的第一任老师 前苏联著名教育家苏霍姆林斯基说“没有家庭教育的学校教育和没有学校教育的家庭教育,都不可能完成培养人这一极其细致而又复杂的任务。”这就说明家庭教育在孩子成长过程中是必不可少的。家庭是孩子最早接受教育的场所,父母是孩子最早......
  • 为什么说家庭教育是孩子的第一所学校,爸妈们(父母)是孩子的第一任老师?
    父母是孩子的第一任教师,家庭是人生的第一课堂。——家庭教育在孩子成长中的价值家庭教育好了,学校教育就会轻松高效,这是一个简单却管用的道理 无论多好的学校教育都代替不了家庭教育家庭是未成年人生活的第一环境,是他们成长的起点和摇篮,而从教育这个角度看,家庭则是孩子的第一......