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. java appendchild_详解javascript appendChild()的完整功能
  2. W10中给文件夹添加备注或者注释
  3. Java Swing专栏订阅须知《必读》
  4. 作业2——需求分析原型设计
  5. 深圳最最最牛逼的 IT 公司全在这了!
  6. 被final关键字坑了
  7. 如何调整c盘分区大小,怎样把c盘空间调整小些
  8. 基金业绩的python分析_Python与量化多因子——聊聊Brinson业绩归因
  9. Google earth engine(GEE):基于MODIS的LST(地表温度数据)计算一定时间序列的城市热岛强度(UHI),并绘制直方图
  10. 网络——数据交换方式
  11. Android破解过程-滚动的天空
  12. Centos7加入AD域并通过域账号登录
  13. 鼠标滑过显示红色禁用符号
  14. 西方哲学智慧2018网课考题(本人亲测,已满分)
  15. uboot 或者 linux 下限制 sata speed
  16. NKD的配置和编写JNI的步骤
  17. Ubuntu16.04 下安装RTL8111/8168/8411 驱动
  18. 20-巴基斯坦-密码(rsa)
  19. HTML5 解决audio标签不能在iPhone上自动播放的问题
  20. 租了阿里云的服务器,原来能直接用IP访问网站,不用备案

热门文章

  1. 中国电子驻车制动器(EPB)行业研究与投资预测报告(2022版)
  2. 【程序设计】暴力枚举
  3. 【CodeChef】【DP】Count Subsequences
  4. Two Bags of Bread
  5. 抓包工具mitmprox
  6. 年轻的90后就应该马上创业不要等
  7. Myeclipse中安装mybatis generator插件有两种方式,一种是在线安装,一种是离线安装。
  8. CSS魔法堂:重新认识Box Model、IFC、BFC和Collapsing margins
  9. 小敏利用计算机设计了一个计算程序,七年级上期中练习卷2013-2014第一学期定稿(10页)-原创力文档...
  10. 云服务器配置网站卡顿,大型网游云服务器要多大配置才能解决卡顿等问题?