抽取通用开发BaseService
2017-04-27 23:39
204 查看
我们在平时的开发中,很多模块的功能都类似,所以通用类的抽取可以提高代码的重用性,加快开发效率,且降低出错效率。对一个项目中类似的多个模块进行抽取,提取出他们相同功能的模块利用反射机制来实现不同模块的调用,所有通用类在开发过程中很重要。以下是对业务层的CRUD进行抽取封装为通用类
以上代码是在ssm环境框架基础上加入了通用mapper+分页工具编写的通用service层的对一个用户实体CRUD操作,本操作中用到了spring4的新特性——泛型注入
该类需要业务层继承后传入泛型可以直接使用
package com.taotao.manage.service; import java.util.Date; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import com.github.abel533.entity.Example; import com.github.abel533.mapper.Mapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.taotao.manage.pojo.BasePojo; public abstract class BaseService<T extends BasePojo> { @Autowired private Mapper<T> mapper; // public abstract Mapper<T> getMapper(); /** * 根据id主键查询 * * @param id * @return */ public T queryById(Long id) { return mapper.selectByPrimaryKey(id); } /** * 查询所有数据 * * @return */ public List<T> queryAll() { return mapper.select(null); } /** * 根据条件查询一条数据,如果查询到多条则抛出异常 * * @param record * @return */ public T queryOne(T record) { return mapper.selectOne(record); } /** * 根据条件查询列表 * * @param record * @return */ public List<T> queryListByWhere(T record) { return mapper.select(record); } /** * 分页查询 * * @param page * @param rows * @param record * @return */ public PageInfo<T> queryPageListByWhere(Integer page, Integer rows, T record) { // 设置分页条件 PageHelper.startPage(page, rows); // 根据条件查询 List<T> list = mapper.select(record); // 返回分页信息 return new PageInfo<T>(list); } /** * 添加信息 * * @param t * @return 返回成功条数 */ public Integer save(T t) { // 设置创建时间和更新时间 t.setCreated(new Date()); t.setUpdated(t.getCreated()); return mapper.insert(t); } /** * 添加信息(使用不为空字段) * * @param t * @return 返回成功条数 */ public Integer saveSelective(T t) { // 设置创建时间和更新时间 t.setCreated(new Date()); t.setUpdated(t.getCreated()); return mapper.insertSelective(t); } /** * 修改信息 * * @param t * @return 返回成功条数 */ public Integer update(T t) { // 设置更新时间 t.setUpdated(new Date()); return mapper.updateByPrimaryKey(t); } /** * 修改信息(使用不为空字段) * * @param t * @return 返回成功条数 */ public Integer updateSelective(T t) { // 设置更新试讲 t.setUpdated(new Date()); // 设置创建时间字段为空,强制永远不被跟新 t.setCreated(null); return mapper.updateByPrimaryKeySelective(t); } /** * 根据主键id删除 * * @param id * @return 返回成功条数 */ public Integer deleteById(Integer id) { return mapper.deleteByPrimaryKey(id); } /** * 批量删除 * * @param values * @param property * @param clazz * @return */ public Integer deleteByIds(List<Object> values, String property, Class<T> clazz) { Example example = new Example(clazz); example.createCriteria().andIn(property, values); return mapper.deleteByExample(example); } /** * 根据自定义条件删除 * * @param record * @return */ public Integer deleteByWhere(T record) { return mapper.delete(record); } }
以上代码是在ssm环境框架基础上加入了通用mapper+分页工具编写的通用service层的对一个用户实体CRUD操作,本操作中用到了spring4的新特性——泛型注入
该类需要业务层继承后传入泛型可以直接使用
相关文章推荐
- 通用数据抽取加载系统二次开发
- 【SSH项目实战】国税协同平台-23.抽取BaseService
- JAVA_WEB项目之Service层抽取成BaseService和BaseServiceImpl
- 在spring中使用通用Mapper,抽象出通用的业务类BaseService<T>
- 纳税服务系统【抽取BaseService、条件查询】
- 跟着汤阳光同志做一个OA系统(八):抽取页面公共部分、提取BaseAction、ModelDriven支持、Service和DAO合并、BaseAction中Service声明、非常好的增删改查流程
- 通用mapper、分页助手的BaseService
- BaseService --- service层的抽取
- ssm框架使用通用Mapper和BaseService
- CRM-BaseService的抽取
- Android 开发技巧-Listview通用适配器BaseCommAdapter
- 纳税服务系统【抽取BaseService、条件查询】
- 二十、基于SSM框架,BaseService --- service层的抽取
- javaEE项目抽取BaseService及其注意事项
- 通用base.css —— 《编写高质量代码 web前端开发修炼之道》
- android开发之继承BaseAdapter实现通用数据适配器
- javaEE项目抽取BaseService及其注意事项
- 25.通用service的抽取
- 在spring中使用通用Mapper,抽象出通用的业务类BaseService<T>
- 通用数据库开发组件(二)--0517