service和serviceImpl抽取
来源:互联网 发布:lol代升级软件 编辑:程序博客网 时间:2024/05/21 11:25
BaseService.java
package cn.buaa.scm.service;import cn.buaa.scm.entity.Page;public interface BaseService<T> {// 插入数据public int insert(T entity) throws Exception;// 修改单个对象public int update(T entity) throws Exception;// 删除单个对象public int delete(T entity) throws Exception;// 通过主键(数组)批量删除数据public int deleteList(String[] pks) throws Exception;// 查询单个对象public T select(T entity) throws Exception;// 通过关键字分页查询public Page<T> selectPage(Page<T> page);// 多条件分页查询public Page<T> selectPageUseDyc(Page<T> page);}BaseServiceimpl
package cn.buaa.scm.service.impl;import java.lang.reflect.Field;import java.lang.reflect.ParameterizedType;import javax.annotation.PostConstruct;import org.springframework.beans.factory.annotation.Autowired;import cn.buaa.scm.dao.AccountMapper;import cn.buaa.scm.dao.BaseMapper;import cn.buaa.scm.dao.SupplierMapper;import cn.buaa.scm.entity.Page;import cn.buaa.scm.service.BaseService;public class BaseServiceImpl<T> implements BaseService<T> {protected BaseMapper<T> baseMapper;@Autowiredprotected SupplierMapper supplierMapper;@Autowiredprotected AccountMapper accountMapper;@PostConstruct// 在构造方法后,初化前执行private void initBaseMapper() throws Exception {// 完成以下逻辑,需要对研发本身进行命名与使用规范// this关键字指对象本身,这里指的是调用此方法的实现类(子类)System.out.println("=======this :" + this);System.out.println("=======父类基本信息:" + this.getClass().getSuperclass());System.out.println("=======父类和泛型的信息:" + this.getClass().getGenericSuperclass());ParameterizedType type = (ParameterizedType) this.getClass().getGenericSuperclass();// 获取第一个参数的classClass clazz = (Class) type.getActualTypeArguments()[0];System.out.println("=======class:" + clazz);// 转化为属性名(相关的Mapper子类的引用名)Supplier supplierMapperString localField = clazz.getSimpleName().substring(0, 1).toLowerCase() + clazz.getSimpleName().substring(1)+ "Mapper";System.out.println("=======localField:" + localField);// getDeclaredField:可以使用于包括私有、默认、受保护、公共字段,但不包括继承的字段Field field = this.getClass().getSuperclass().getDeclaredField(localField);System.out.println("=======field:" + field);System.out.println("=======field对应的对象:" + field.get(this));Field baseField = this.getClass().getSuperclass().getDeclaredField("baseMapper");System.out.println("=======baseField:" + baseField);System.out.println("=======baseField对应的对象:" + baseField.get(this));// field.get(this)获取当前this的field字段的值。例如:Supplier对象中,baseMapper所指向的对象为其子类型SupplierMapper对象,子类型对象已被spring实例化于容器中baseField.set(this, field.get(this));System.out.println("========baseField对应的对象:" + baseMapper);}@Overridepublic int insert(T entity) throws Exception {// TODO Auto-generated method stubreturn baseMapper.insert(entity);}@Overridepublic int update(T entity) throws Exception {// TODO Auto-generated method stubreturn baseMapper.update(entity);}@Overridepublic int delete(T entity) throws Exception {// TODO Auto-generated method stubreturn baseMapper.delete(entity);}@Overridepublic int deleteList(String[] pks) throws Exception {// TODO Auto-generated method stubreturn baseMapper.deleteList(pks);}@Overridepublic T select(T entity) {// TODO Auto-generated method stubreturn baseMapper.select(entity);}@Overridepublic Page<T> selectPage(Page<T> page) {page.setList(baseMapper.selectPageList(page));page.setTotalRecord(baseMapper.selectPageCount(page));return page;}@Overridepublic Page<T> selectPageUseDyc(Page<T> page) {// TODO Auto-generated method stubpage.setList(baseMapper.selectPageListUseDyc(page));page.setTotalRecord(baseMapper.selectPageCountUseDyc(page));return page;}}
0 0
- service和serviceImpl抽取
- SSH项目中创建action、service和serviceImpl步骤
- serviceimpl
- service 抽取
- service抽取
- 为什么有时在ServiceImpl层中还会注入Service
- 代码生成器:Java自动生成service,serviceImpl及action
- SSRS Reporting Service 报表参数和数据集信息抽取
- JAVA_WEB项目之Service层抽取成BaseService和BaseServiceImpl
- BaseService --- service层的抽取
- 25.通用service的抽取
- MyBatis学习之IOC和注解编写*ServiceImpl
- 传智播客--进销存之项目架构,DAO层和Service层的泛型抽取和实现
- Dao接口和实现类以及Service接口和实现类代码抽取
- 解释Java工程中几种常见的包:PO,VO,DAO,BIZ,DTO,Service,ServiceImpl
- 苏伯亚将service中写的这个新方法重载到serviceImpl中
- Java工程中几种常见的包:PO,VO,DAO,BIZ,DTO,Service,ServiceImpl
- 为什么Controller层注入的是Service接口,而不是ServiceImpl实现类
- jquery ui widget
- Android 开发环境搭建及常见问题解决
- Android Fragment release 有时黑屏解决办法
- 通过传址来传递和返回对象
- 基础知识:二、 Service
- service和serviceImpl抽取
- leetcode_292_Nim Game
- OpenGL学习脚印: 坐标和变换的数学基础(math-coordinates and transformations)
- centos 启动后,自动执行自己的脚本。
- 微信登陆,用到的。
- 路在远方,努力不止!!!
- POJ3320
- 使用Dom4j解析XML
- 2014年第五届蓝桥杯C/C++程序设计本科B组决赛 出栈次序(结果填空)