什么是DAO层

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);
}
}
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值