文章目录
简介
上一篇中大致做好了开发前的准备工作,之后就会用到
分层处理
将程序分为三层,表现层,业务层,数据访问层,方便编码和开发人员之间协作配合
由于出版社表没有任何外键约束,比较好操作,所以本次先对出版社进行操作。
数据访问层
先建立一个数据访问层的包dao,内容主要包括三个部分
数据访问层基类CommonDaoImpl
写一个数据访问层的基类,用来实现所有数据访问层类的公用操作,代码如下
package dao;
import main.*;
import java.sql.ResultSet;
import java.util.Collection;
//数据访问父类
public class CommonDaoImpl {
public JDBCExector getJDBCExector() throws Exception {
return JDBCExector.getInstance();
}
//根据sql得到结果集,再返回集合
public Collection getDatas(String sql, Collection result,
Class clazz) throws Exception {
ResultSet rs = getJDBCExector().executeQuery(sql);
return DataUtil.getData(result,rs,clazz);
}
}
- 得到JDBCExector对象,用于执行sql语句
- 根据sql语句得到结果集,再利用DataUtil中的getData方法返回包装成集合
数据访问层接口PublisherDao
用于供业务层调用并访问数据,代码如下
package dao;
import database.Publisher;
import java.util.Collection;
public interface PublisherDao {
//获取所有出版社
Collection<Publisher> findAll() throws Exception;
//模糊查询(关键字查询)
Collection<Publisher> findByName(String name) throws Exception;
//id查询
Publisher findById(String id) throws Exception;
//新增出版社(存在就修改)
Publisher addOrUpdate(Publisher p) throws Exception;
}
可以看到其中需要实现的方法,下面我们写一个实现类
数据访问层实现类PublisherDaoImpl
package dao;
import database.*;
import java.util.ArrayList;
import java.util.Collection;
//数据访问层的实现
public class PublisherDaoImpl extends CommonDaoImpl implements PublisherDao {
@Override
public Collection<Publisher> findAll