java,mybatis,springframework搭建dao,service框架
dao层BaseDao代码
BaseDao.java:
package cn.itcast.jk.dao;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import cn.itcast.jk.pagination.Page;
/**
* @Description: 泛型类,基础的DAO接口
* @Author: nutony
* @Company: http://java.itcast.cn
* @CreateDate: 2014-2-25
*/
public interface BaseDao<T> {
public List<T> findPage(Page page); //分页查询
public List<T> find(Map paraMap); //带条件查询,条件可以为null,既没有条件;返回list对象集合
public T get(Serializable id); //只查询一个,常用于修改
public void insert(T entity); //插入,用实体作为参数
public void update(T entity); //修改,用实体作为参数
public void deleteById(Serializable id); //按id删除,删除一条;支持整数型和字符串类型ID
public void delete(Serializable[] ids); //批量删除;支持整数型和字符串类型ID
}
dao层Product接口继承BaseDAO代码:
package cn.itcast.jk.dao;
import cn.itcast.jk.domain.ExtEproduct;
public interface ExtEproductDao extends BaseDao<ExtEproduct> {
public void deleteByExportId(String exportId);
}
dao层BaseDaoImpl
BaseDaoImpl.java
package cn.itcast.jk.dao.impl;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import org.springframework.beans.factory.annotation.Autowired;
import cn.itcast.jk.dao.BaseDao;
import cn.itcast.jk.pagination.Page;
public abstract class BaseDaoImpl<T> extends SqlSessionDaoSupport implements BaseDao<T>{
@Autowired
//mybatis-spring 1.0无需此方法;mybatis-spring1.2必须注入。
public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory){
super.setSqlSessionFactory(sqlSessionFactory);
}
private String ns; //命名空间
public String getNs() {
return ns;
}
public void setNs(String ns) {
this.ns = ns;
}
public List<T> findPage(Page page){
List<T> oList = this.getSqlSession().selectList(ns + ".findPage", page);
return oList;
}
public List<T> find(Map map) {
List<T> oList = this.getSqlSession().selectList(ns + ".find", map);
return oList;
}
public T get(Serializable id) {
return this.getSqlSession().selectOne(ns + ".get", id);
}
public void insert(T entity) {
this.getSqlSession().insert(ns + ".insert", entity);
}
public void update(T entity) {
this.getSqlSession().update(ns + ".update", entity);
}
public void deleteById(Serializable id) {
this.getSqlSession().delete(ns + ".deleteById", id);
}
public void delete(Serializable[] ids) {
this.getSqlSession().delete(ns + ".delete", ids);
}
}
dao实现层impl ,继承BaseDaoImpl:
package cn.itcast.jk.dao.impl;
import org.springframework.stereotype.Repository;
import cn.itcast.jk.dao.ExtEproductDao;
import cn.itcast.jk.domain.ExtEproduct;
@Repository
public class ExtEproductDaoImpl extends BaseDaoImpl<ExtEproduct> implements ExtEproductDao {
//默认构造方法设置命名空间
public ExtEproductDaoImpl() {
super.setNs("cn.itcast.jk.mapper.ExtEproductMapper");
}
@Override
public void deleteByExportId(String exportId) {
super.getSqlSession().delete(this.getNs()+".deleteByExportId", exportId);
}
}