package top.qaqaq.P43.dao;
import java.sql.Connection;
import java.sql.Date;
import java.util.List;
import top.qaqaq.P43.bean.Customer;
/*
* 此接口用于规范针对于customers表的常用操作
*/
public interface CustomerDAO {
/**
*
* @Description 将cust对象添加到数据库中
* @author RichieZhang
* @date 2022年11月28日下午2:20:36
* @param conn
* @param cust
*/
void insert(Connection conn, Customer cust);
/**
*
* @Description 针对指定的id,删除表中的一条记录
* @author RichieZhang
* @date 2022年11月28日下午2:21:29
* @param conn
* @param id
*/
void deleteById(Connection conn, int id);
/**
*
* @Description 针对内存中的cust对象,去修改数据表中指定的记录
* @author RichieZhang
* @date 2022年11月28日下午2:23:35
* @param conn
* @param cust
*/
void update(Connection conn, Customer cust);
/**
*
* @Description 针对指定的id查询得到对应的Customer对象
* @author RichieZhang
* @date 2022年11月28日下午2:24:38
* @param conn
* @param id
*/
Customer getCustomerById(Connection conn, int id);
/**
*
* @Description 查询表中的所有记录构成的集合
* @author RichieZhang
* @date 2022年11月28日下午2:25:41
* @param conn
* @return
*/
List<Customer> getAll(Connection conn);
/**
*
* @Description 返回数据表中的数据的条目数
* @author RichieZhang
* @date 2022年11月28日下午2:26:57
* @param conn
* @return
*/
Long getCount(Connection conn);
/**
*
* @Description 返回数据表中最大的生日
* @author RichieZhang
* @date 2022年11月28日下午2:28:35
* @param conn
* @return
*/
Date getMaxBirth(Connection conn);
}
package top.qaqaq.P43.dao;
import java.sql.Connection;
import java.sql.Date;
import java.util.List;
import top.qaqaq.P42.dao.BaseDAO;
import top.qaqaq.P43.bean.Customer;
public class CustomerDAOImpl extends BaseDAO implements CustomerDAO {
@Override
public void insert(Connection conn, Customer cust) {
String sql = "insert into customers(name,email,birth) values(?,?,?) ";
update(conn, sql, cust.getName(),cust.getEmail(),cust.getBirth());
}
@Override
public void deleteById(Connection conn, int id) {
String sql = "delete from customers where id = ?";
update(conn, sql, id);
}
@Override
public void update(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());
}
@Override
public 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;
}
@Override
public List<Customer> getAll(Connection conn) {
String sql = "select id,name,email,birth from customers ";
List<Customer> list = getForList(conn, Customer.class, sql);
return list;
}
@Override
public Long getCount(Connection conn) {
String sql = "select count(*) from customers";
return getValue(conn, sql);
}
@Override
public Date getMaxBirth(Connection conn) {
String sql = "select max(birth) from customers";
return getValue(conn, sql);
}
}
package top.qaqaq.P43.bean;
import java.sql.Date;
/*
* ORM编程思想(object relational mapping)
* 一个数据表对应一个java类
* 表中的一条记录对应java类的一个对象
* 表中的一个字段对应java类的一个属性
*
*/
public class Customer {
private int id;
private String name;
private String email;
private Date birth;
public Customer() {
}
public Customer(int id, String name, String email, Date birth) {
this.id = id;
this.name = name;
this.email = email;
this.birth = birth;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
@Override
public String toString() {
return "Customer [id=" + id + ", name=" + name + ", email=" + email + ", birth=" + birth + "]";
}
}
package top.qaqaq.P43.bean;
import java.sql.Date;
public class Order {
private int orderId;
private String orderName;
private Date orderDate;
public Order() {
}
public Order(int orderId, String orderName, Date orderDate) {
this.orderId = orderId;
this.orderName = orderName;
this.orderDate = orderDate;
}
public int getOrderId() {
return orderId;
}
public void setOrderId(int orderId) {
this.orderId = orderId;
}
public String getOrderName() {
return orderName;
}
public void setOrderName(String orderName) {
this.orderName = orderName;
}
public Date getOrderDate() {
return orderDate;
}
public void setOrderDate(Date orderDate) {
this.orderDate = orderDate;
}
@Override
public String toString() {
return "Order [orderId=" + orderId + ", orderName=" + orderName + ", orderDate=" + orderDate + "]";
}
}