CustomerDAO及CustomerDAOImpl的实现

/*
此接口用于规范针对于customers表的常用操作*/
public interface CustomerDAO {//将cust对象添加到数据库中void insert(Connection conn, Customer cust);//根据指定的ID删除表中的一条记录void deleteById(Connection conn,int id);//针对内存中的cust对象,去修改数据表中指定的记录void updateById(Connection conn,Customer cust);//针对指定的id查询得到对应的customer对象Customer getCustomerById(Connection conn,int id);//查询表中的所有记录构成的集合List<Customer> getAll(Connection conn);//返回数据表中数据的条目数Long getCount(Connection conn);//返回数据表中最大的生日Date getMaxBirth(Connection conn);
}
public class CustomerDAOImpl extends BaseDAO implements CustomerDAO {@Overridepublic void insert(Connection conn, Customer cust) {String sql="insert into customers(name,email,birth)values(?,?,?)";update(conn, sql, cust.getName(),cust.getEmail(),cust.getBirth());}@Overridepublic void deleteById(Connection conn, int id) {String sql="delete from customers where id=?";update(conn, sql, id);}@Overridepublic void updateById(Connection conn, Customer cust) {String sql="update customers set name=?,email=?,birth=? where id=?";update(conn, sql, cust.getName(),cust.getEmail(),cust.getBirth(),cust.getId());}@Overridepublic Customer getCustomerById(Connection conn, int id) {String sql="select id,name,email,birth from customers where id=?";Customer customer = getInstance(conn, Customer.class, sql, id);return customer;}@Overridepublic List<Customer> getAll(Connection conn) {String sql="select id,name,email,birth from customers";List<Customer> list = getForList(conn, Customer.class, sql);return list;}@Overridepublic Long getCount(Connection conn) {String sql="select count(*) from customers";return getValue(conn, sql);}@Overridepublic Date getMaxBirth(Connection conn) {String sql="select max(birth) from customers";return getValue(conn, sql);}
}

CustomerDAOImpl的测试

public class testCustomerDAOImpl {private CustomerDAOImpl dao=new CustomerDAOImpl();@Testpublic void testInsert()  {Connection conn = null;try {conn = JDBCUtil.getConnection();Customer cust = new Customer(1, "cxy", "cxy@qq.com", new Date(4213123123L));dao.insert(conn,cust);System.out.println("添加成功");} catch (Exception e) {e.printStackTrace();} finally {JDBCUtil.closeResource(conn, null);}}@Testpublic void testDeleteById(){Connection conn = null;try {conn = JDBCUtil.getConnection();dao.deleteById(conn, 13);System.out.println("删除成功");} catch (Exception e) {e.printStackTrace();} finally {JDBCUtil.closeResource(conn, null);}}@Testpublic void testUpdateConnectionCustomer(){Connection conn = null;try {conn = JDBCUtil.getConnection();Customer cust = new Customer(18, "贝多芬", "bei@qq.com", new Date(321321321L));dao.updateById(conn,cust);System.out.println("修改成功");} catch (Exception e) {e.printStackTrace();} finally {JDBCUtil.closeResource(conn, null);}}@Testpublic void testGetCustomerById(){Connection conn = null;try {conn = JDBCUtil.getConnection();Customer cust = dao.getCustomerById(conn, 18);System.out.println(cust);} catch (Exception e) {e.printStackTrace();} finally {JDBCUtil.closeResource(conn, null);}}@Testpublic void testGetAll(){Connection conn = null;try {conn = JDBCUtil.getConnection();List<Customer> list = dao.getAll(conn);list.forEach(System.out::println);} catch (Exception e) {e.printStackTrace();} finally {JDBCUtil.closeResource(conn, null);}}@Testpublic void testGetCount(){Connection conn = null;try {conn = JDBCUtil.getConnection();Long count = dao.getCount(conn);System.out.println("表中记录数为:"+count);} catch (Exception e) {e.printStackTrace();} finally {JDBCUtil.closeResource(conn, null);}}@Testpublic void testMaxBirth(){Connection conn = null;try {conn = JDBCUtil.getConnection();Date maxBirth = dao.getMaxBirth(conn);System.out.println("最大生日为:"+maxBirth);} catch (Exception e) {e.printStackTrace();} finally {JDBCUtil.closeResource(conn, null);}}
}

P44CustomerDAO及CustomerDAOImpl的实现与测试相关推荐

  1. spring4.x(6)---SpringIOC的Scope配置

    SpringIOC的Scope配置 如何使用spring的作用域? <bean id="customerDao" class="com.yiidian.dao.im ...

  2. Java Web当中使用EasyUI|快速建立漂亮的后台网站(教程+源代码)

    项目源代码下载:https://download.csdn.net/download/qq_44757034/12726812 一.EasyUI的概述 1.什么是EasyUI jQuery EasyU ...

  3. mysql 与gemfire的同步_Gemfire简单配置并测试

    软件版本 1.      Gemfire 8.0 2.      Java 1.6.0_45 3.      Ubuntu 12.04 (32bit) 4.      Jmeter 2.13 一.Ge ...

  4. locust入门:单机使用locust运行压力测试

    locust的官方文档在这里: http://docs.locust.io/en/stable/ 前置:locust的测试脚本使用为python(若未安装python环境,可以搜索安装python) ...

  5. HA: InfinityStones靶机渗透测试

    文章目录 靶机信息 一.信息收集 1.主机发现 2.端口扫描 3.目录扫描 二.漏洞挖掘 1.访问 192.168.1.108 2.访问 /img 目录 3.访问 https 服务(443)端口 4. ...

  6. HA: Forensics靶机渗透测试

    文章目录 靶机说明: 一.信息收集 1.主机发现 2.端口扫描 二.漏洞挖掘 1.访问靶机 web 服务 2.使用 dirb 进行目录扫描 3.使用 exiftool 提取数据 4.使用 dirb 扫 ...

  7. YOLOv4 资源环境配置和测试样例效果

    YOLOv4 资源环境配置和测试样例效果 基本环境:cuda=10.0,cudnn>=7.0, opencv>=2.4 一.下载yolov4 git clone https://githu ...

  8. 大数据调度平台Airflow(八):Airflow分布式集群搭建及测试

    目录 Airflow分布式集群搭建及测试 一.节点规划 二.airflow集群搭建步骤 1.在所有节点安装python3.7 2.在所有节点上安装airflow 三.初始化Airflow 1.每台节点 ...

  9. 2021年大数据ELK(九):使用VSCode测试分词器

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 使用VSCode测试分词器 一.准备VSCode开发环境 1.打开VSCode ...

最新文章

  1. 装了VS2005再装IIS的小问题
  2. JavaScript中的基本数据类型与引用数据类型
  3. blockly自定义中文出问题_[BlocklyNukkit入门]#5自定义物品
  4. ProjectEuler 009题
  5. 交易记录表设计注意点
  6. 全球最受欢迎的五大生产制造管理系统
  7. Office基础操作:Word、PPT 表格文字居中
  8. 计算机如何更改扩展名,文件扩展名怎么改,怎样更改文件的扩展名
  9. yuv 420 8 bit 转 10bit
  10. ARFoundation系列讲解 - 80 AR内容制作一
  11. 中国经济八问-中国视角下的宏观经济
  12. 中大型公司的开发流程
  13. 【C++学习笔记】处理类型和自定义数据结构
  14. 多路复用之——epoll
  15. 低保真原型vs高保真原型,哪一种更适合你的设计?
  16. 基于微信小程序的每日签到打卡
  17. 006 window操作系统安装(GHO)
  18. coder,你会设计交易系统吗(实干篇)?
  19. 0.45秒!以太坊平均网络传输时间又双叒叕缩短了;以太坊全球节点分布覆盖英国、法国及德国...
  20. 机车计算机模糊规则表,计算机编制机车周转图有什么要求?

热门文章

  1. Mysql分库分表方案-上
  2. 创新力成中国互联网企业后发优势
  3. 一个软件项目团队的分工
  4. java网盘_和付费网盘说再见,跟着本文自己起个网盘(Java 开源项目)
  5. linux运行php文件
  6. 工业控制信息安全资源汇总
  7. Appium移动自动化
  8. shell 判断网线插拔_shell脚本自动检测网络掉线和自动重连
  9. 描述物理海洋学--第八章学习笔记
  10. 网安渗透安服 电脑 环境 配置 一文全