1.DAO层?
介于业务逻辑层和数据库之间,进行数据的访问和操作。
2.DAO层包括三个部分。
DAO接口:定义了一系列操作数据库的方法。
DAO实现类:实现了操作数据库的方法。(对于不同数据库,有不同的实现)
DAO工厂类:返回一个DAO实现类对象。
3.DAO接口设计
package com.ibeifeng.dao; import java.util.List; import com.ibeifeng.vo.Customer; /* * 客户管理DAO接口 */ public interface CustomerDAO { /** * 添加客户 */ public void addCustomer(Customer customer); /** * 按客户编号查询客户 */ public Customer findByCustomerCode(); /** * 按客户名称查询客户 */ public List<Customer> findByCustomerName(); /** * 按联系电话查询客户 */ public List<Customer> findByPhone(); /** * 按联系地址查询客户 */ public List<Customer> findByAddress(); /** * 按联系人查询客户 */ public List<Customer> findByRelationMan(); /** * 按其他信息查询客户 */ public List<Customer> findByOther(); } |
4.DAO实现类
public void addCustomer(Customer customer) { //1.获得连接对象 Connection conn = DataBaseManager.getConnection(); //2.SQL语句 String addSql = "insert into customer(customercode,customername,phone,address,relationman,other)" + " values(?,?,?,?,?,?);"; //3.通过连接对象来创建一个预处理语句对象 PreparedStatement pstmt = null; try { pstmt = conn.prepareStatement(addSql); //4.设置参数 pstmt.setString(1, customer.getCustomercode()); pstmt.setString(2, customer.getCustomername()); pstmt.setString(3, customer.getPhone()); pstmt.setString(4, customer.getAddress()); pstmt.setString(5, customer.getRelationman()); pstmt.setString(6, customer.getOther()); //执行插入 pstmt.execute(); } catch (SQLException e) { e.printStackTrace(); } finally{ DataBaseManager.close(pstmt); DataBaseManager.close(conn); } } |
5.DAO工厂类
/* * 客户管理DAO工厂类 */ public class CustomerDAOFactory { public static CustomerDAO getCustomerDAO() { return new CustomerDAOImpl(); } } |
6.测试添加客户
package com.ibeifeng.test; import com.ibeifeng.dao.CustomerDAO; import com.ibeifeng.daofactory.CustomerDAOFactory; import com.ibeifeng.vo.Customer; public class AddCustomerTest { public static void main(String[] args) { CustomerDAO cdao = CustomerDAOFactory.getCustomerDAO(); //封装客户对象 Customer customer = new Customer(); customer.setCustomercode("234"); customer.setCustomername("北风网"); customer.setPhone("123456"); customer.setAddress("中国上海"); customer.setRelationman("厉风行"); customer.setOther("很好"); cdao.addCustomer(customer); } } |