基于spring注解,泛型的使用
2015-10-23 10:03
597 查看
/** * Service基类,所有Service均继承该类 * */ public abstract class BaseService<T> { /* 所有子类直接通过该SQLSession操作数据库 */ @Resource(name = "sqlSession") protected SqlSession sqlSession; protected Class<T> clazz; protected String DOMAIN_NAME; /* 用于记录日志 */ protected Logger logger=null ; @SuppressWarnings("unchecked") @PostConstruct public void postConstruct(){ try { Type type= this.getClass().getGenericSuperclass(); ParameterizedType parameterizedType=(ParameterizedType) type; clazz= (Class<T>) parameterizedType.getActualTypeArguments()[0]; DOMAIN_NAME =clazz.getName(); } catch (Exception e) { e.printStackTrace(); clazz=null; } logger = LoggerFactory.getLogger(this.getClass()); } // base根据主键ID查询方法 @Transactional(readOnly = true) public T getByID(Long id)throws Exception { try { return sqlSession.selectOne(DOMAIN_NAME + ".selectByPrimaryKey", id); } catch (Exception e) { logger.error("根据{}获取{}发生错误:{}", id, DOMAIN_NAME,e.getMessage(), e); throw e; } } // base新增方法 @Transactional public void saveBase(T entity) throws Exception{ try { sqlSession.insert(DOMAIN_NAME+".insertSelective",entity); } catch (Exception e) { e.printStackTrace(); throw e; } } // base修改方法 @Transactional public int updateBase(T entity) throws Exception{ try{ return sqlSession.update(DOMAIN_NAME+".updateByPrimaryKeySelective",entity); }catch(Exception e){ logger.error(DOMAIN_NAME+"修改时发生错误:{}", e.getMessage(), e); throw e; } } // base删除方法 @Transactional public void deleteBase(Long id) throws Exception { try { sqlSession.delete(DOMAIN_NAME + ".deleteByPrimaryKey", id); } catch (Exception e) { logger.error(DOMAIN_NAME+"删除时发生错误:{}", e.getMessage(), e); throw e; } } }
相关文章推荐
- Struts学习笔记
- nohup java - cp
- Java异常
- java生成excel并下载(poi)
- Java 二叉树
- Java sendemail
- Java 获取区域号段
- JAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解
- java生成excel并下载(jxl)
- java 移位运算符
- interface Java 中接口
- Java web.xml session-config 属性配置
- Eclipse swt开发环境搭建
- JVM的相关知识整理和学习
- Java基础增强3-反射,内省,beanutils,泛型
- java内存分配和String类型的深度解析
- Spring Boot应用之数据加密以及字段过滤
- 深度优先实现拓扑排序--java
- 在Servlet中获取Spring的指定bean
- java keytool证书工具使用小结