dao接口怎么写( 二 )


接口的命名:XxxDAO.java
实现类的命名:XxxDAOImpl.java
接口的例子:
public interface XxxDAOImpl {
//添加(XxxDTO是一个封装好的标准的javaBean)
public void insert(XxxDTO xxx);
//删除
public void delete(int XxxId);
//修改
public void update(XxxDTO xxx);
//查找
public List<XxxDTO> findAll();
}
5.dao层的父接口ibasedao怎么写接口是为了屏蔽不同数据库的JDBC实现差异而出现的 。
以常见的系统组织结构为例,管理系统里有一个部门department表用于存放部门信息,因为部门下面可能有子部门所以表中的字段要定义成类似树形结构的方式(parentId呀什么的) 。这时我们想在java中用sql去查询指定部门下的数据,你就要考虑不同数据库的SQL语句的问题了:Oracle sql提供了树查询的方法,你只需要发一句sql就能查询出该部门下的所有子部门信息;但是mysql就不行,mysql就只能通过java递归一条一条查询 。那么假如我们的系统即要支持Oracle又要支持mysql,这时我们查询部门怎么办呢?这时就要考虑接口,看下面的代码:
首先定义一个部门接口,该接口有一个findDept方法用于查询部门下的所有子部门
Interface DepartmentDao{
//根据父部门ID查询部门下的所有子部门
public List findDept(int deptId);
}
有了接口,我们就需要有实现类了,这时我们为了考虑兼容性就需要编写两套接口类,一个是用mysql语句实现的类,另一个是用Oracle实现的类:
class implement DepartmentDao{
//根据父部门ID查询部门下的所有子部门
public List findDept(int deptId){String sql="mysql的sql语句" 。..}
}
class implement DepartmentDao{
//根据父部门ID查询部门下的所有子部门
public List findDept(int deptId){String sql="Oracle的sql语句" 。..}
}
一个Dao工厂,这个工厂返回部门Dao接口的实例
class DaoFactory{
public DepartmentDao getDepartmentDao(){
if(使用的是Mysql数据库){
return new ();
}else{
return new ();
}
}
}
上面的编码DaoFactory是关键,通过这个这个工厂只返回给我们接口实例,这样就屏蔽了不同数据库的差异性(如果用户使用的是mysql数据库就会返回new ()反之为new ()) 。我们在编码中只需要通过DepartmentDao deptDao = DaoFactory.getDepartmentDao();deptDao.findDept就可以查询我们需要的数据了 。
所以面向接口编程是很重要的东西,建议你学习一下spring的IOC,代码写多了你就明白接口的重要性了
6.java开发,通用DAO接口是指什么通用DAO接口应该是指BaseDao,通用和公用是一个意思,这个DAO里面就是抽象了一些基本的所有的Dao接口都会用到的基本方法比如: getById、getByIds、find 方法,通过泛型,可以让不同的接口在实现时通过泛型来指定各自的数据类型 。
比如实现接口中放一个BaseDAO:
private BaseDAO<Product> baseDao;
baseDao 中定义方法:
public interface BaseDAO<T> {
public void delete(T o);
}
这样就等于 Product 这种类型的对象在操作baseDao 中的方法了 。
【dao接口怎么写】

dao接口怎么写

文章插图