P44CustomerDAO及CustomerDAOImpl的实现与测试
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的实现与测试相关推荐
- spring4.x(6)---SpringIOC的Scope配置
SpringIOC的Scope配置 如何使用spring的作用域? <bean id="customerDao" class="com.yiidian.dao.im ...
- Java Web当中使用EasyUI|快速建立漂亮的后台网站(教程+源代码)
项目源代码下载:https://download.csdn.net/download/qq_44757034/12726812 一.EasyUI的概述 1.什么是EasyUI jQuery EasyU ...
- mysql 与gemfire的同步_Gemfire简单配置并测试
软件版本 1. Gemfire 8.0 2. Java 1.6.0_45 3. Ubuntu 12.04 (32bit) 4. Jmeter 2.13 一.Ge ...
- locust入门:单机使用locust运行压力测试
locust的官方文档在这里: http://docs.locust.io/en/stable/ 前置:locust的测试脚本使用为python(若未安装python环境,可以搜索安装python) ...
- HA: InfinityStones靶机渗透测试
文章目录 靶机信息 一.信息收集 1.主机发现 2.端口扫描 3.目录扫描 二.漏洞挖掘 1.访问 192.168.1.108 2.访问 /img 目录 3.访问 https 服务(443)端口 4. ...
- HA: Forensics靶机渗透测试
文章目录 靶机说明: 一.信息收集 1.主机发现 2.端口扫描 二.漏洞挖掘 1.访问靶机 web 服务 2.使用 dirb 进行目录扫描 3.使用 exiftool 提取数据 4.使用 dirb 扫 ...
- YOLOv4 资源环境配置和测试样例效果
YOLOv4 资源环境配置和测试样例效果 基本环境:cuda=10.0,cudnn>=7.0, opencv>=2.4 一.下载yolov4 git clone https://githu ...
- 大数据调度平台Airflow(八):Airflow分布式集群搭建及测试
目录 Airflow分布式集群搭建及测试 一.节点规划 二.airflow集群搭建步骤 1.在所有节点安装python3.7 2.在所有节点上安装airflow 三.初始化Airflow 1.每台节点 ...
- 2021年大数据ELK(九):使用VSCode测试分词器
全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 使用VSCode测试分词器 一.准备VSCode开发环境 1.打开VSCode ...
最新文章
- 装了VS2005再装IIS的小问题
- JavaScript中的基本数据类型与引用数据类型
- blockly自定义中文出问题_[BlocklyNukkit入门]#5自定义物品
- ProjectEuler 009题
- 交易记录表设计注意点
- 全球最受欢迎的五大生产制造管理系统
- Office基础操作:Word、PPT 表格文字居中
- 计算机如何更改扩展名,文件扩展名怎么改,怎样更改文件的扩展名
- yuv 420 8 bit 转 10bit
- ARFoundation系列讲解 - 80 AR内容制作一
- 中国经济八问-中国视角下的宏观经济
- 中大型公司的开发流程
- 【C++学习笔记】处理类型和自定义数据结构
- 多路复用之——epoll
- 低保真原型vs高保真原型,哪一种更适合你的设计?
- 基于微信小程序的每日签到打卡
- 006 window操作系统安装(GHO)
- coder,你会设计交易系统吗(实干篇)?
- 0.45秒!以太坊平均网络传输时间又双叒叕缩短了;以太坊全球节点分布覆盖英国、法国及德国...
- 机车计算机模糊规则表,计算机编制机车周转图有什么要求?