(七)剩余DAO代码
时间:2020-05-20
本文章向大家介绍(七)剩余DAO代码,主要包括(七)剩余DAO代码使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
AccountDAO.java
package com.aff.bookstore.dao; import com.aff.bookstore.domain.Account; public interface AccountDAO { /** * 根据 accountId 获取对应的 Account 对象 * @param accountId * @return */ public abstract Account get(Integer accountId); /** * 根据传入的 accountId, amount 更新指定账户的余额: 扣除 amount 指定的钱数 * @param accountId * @param amount */ public abstract void updateBalance(Integer accountId, float amount); }
AccountDAOImpl.java
package com.aff.bookstore.dao.impl; import com.aff.bookstore.dao.AccountDAO; import com.aff.bookstore.domain.Account; public class AccountDAOImpl extends BaseDAO<Account> implements AccountDAO { @Override public Account get(Integer accountId) { String sql = "select accountId,balance from account where accountId = ?"; return query(sql, accountId); } @Override public void updateBalance(Integer accountId, float amount) { String sql = "update account set balance = balance - ? where accountId = ?"; update(sql, amount, accountId); } }
TradeDAO.java
package com.aff.bookstore.dao; import java.util.Set; import com.aff.bookstore.domain.Trade;
public interface TradeDAO { /** * 向数据表中插入 Trade 对象 * @param trade */ public abstract void insert(Trade trade); /** * 根据 userId 获取和其关联的 Trade 的集合 * @param userId * @return */ public abstract Set<Trade> getTradesWithUserId(Integer userId); }
TradeDAOImpl.java
package com.aff.bookstore.dao.impl; import java.util.HashSet; import java.util.Set; import com.aff.bookstore.dao.TradeDAO; import com.aff.bookstore.domain.Trade; public class TradeDAOImpl extends BaseDAO<Trade> implements TradeDAO { @Override public void insert(Trade trade) { String sql = "insert into trade(userid,tradetime) values(?,?)"; update(sql, trade.getUserId(),trade.getTradeTime()); } @Override public Set<Trade> getTradesWithUserId(Integer userId) { String sql = "select tradeId,userId, tradeTime from trade where userId = ?"; return new HashSet<>(queryForList(sql, userId)); } }
TradeItemDAO.java
package com.aff.bookstore.dao; import java.util.Collection; import java.util.Set; import com.aff.bookstore.domain.TradeItem; public interface TradeItemDAO { /** * 批量保存 TradeItem 对象 * @param items */ public abstract void batchSave(Collection<TradeItem> items); /** * 根据 tradeId 获取和其关联的 TradeItem 的集合 * @param tradeId * @return */ public abstract Set<TradeItem> getTradeItemsWithTradeId(Integer tradeId); }
TradeItemDAOImpl.java
package com.aff.bookstore.dao.impl; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set; import com.aff.bookstore.dao.TradeItemDAO; import com.aff.bookstore.domain.TradeItem; public class TradeItemDAOImpl extends BaseDAO<TradeItem> implements TradeItemDAO { @Override public void batchSave(Collection<TradeItem> items) { String sql = "insert into tradeitem(bookid, quantity,tradeid) values(?,?,?)"; Object[][] params = new Object[items.size()][3]; List<TradeItem> tradeItems = new ArrayList<TradeItem>(items); for (int i = 0; i < tradeItems.size(); i++) { params[i][0] = tradeItems.get(i).getBookId(); params[i][1] = tradeItems.get(i).getQuantity(); params[i][2] = tradeItems.get(i).getTradeId(); } batch(sql, params); } @Override public Set<TradeItem> getTradeItemsWithTradeId(Integer tradeId) { String sql = "select itemId tradeItemId, bookId,quantity,tradeId from tradeitem where tradeid = ?"; return new HashSet<>(queryForList(sql, tradeId)); } }
原文地址:https://www.cnblogs.com/afangfang/p/12922970.html
- 本周末的QQ群视频--还是电商网站的事
- 【译】使用Apache的mod重写来保护你的C2 Empire
- 大白话,设计一个购物车对象
- 【译】Cromos – 下载并注入代码到谷歌 Chrome 浏览器扩展中
- X-NUCA 2017第三期 WriteUp
- 学习分享 | Flipped Ciphertext Bits
- 聊一下JavaScript定时器
- java redis 通用组建
- 学习分享 | Padding Oracle
- FastJson 反序列化注意事项
- Python编写渗透工具学习笔记二 | 0x05编写脚本劫持tcp会话
- linux下socket编程
- java与openssl的rsa算法互
- Python编写渗透工具学习笔记二 | 0x04编写程序分析流量检测ddos攻击
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Angular 应用的DevDependencies
- 轻量级服务网格 - osm
- 漫画:设计模式之 “外观模式”
- 使用 Zotero 在 Markdown 中优雅处理参考文献
- Mybatis plus自动生成业务代码
- 功能强大的CD工具 - flagger
- Swift defer
- MySQL 最佳实践:CPU 100%,MySQL 到底在干什么
- 【译】Flutter 1.20 发布
- 算法面试题:一个List,要求删除里面的男生,不用Linq和Lamda,求各种解,并说明优缺点!
- Angular CLI创建的项目文件用途一栏
- [888]python内置函数vars()|dir()|locals()
- Mdnice,一种记录知识的新方式
- [887]python中@classmethod和@staticmethod
- leetcode每日一题-99. 恢复二叉搜索树