|
|
@@ -0,0 +1,213 @@
|
|
|
+package com.zheng.common.base;
|
|
|
+
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
+import org.apache.ibatis.annotations.Param;
|
|
|
+
|
|
|
+import java.lang.reflect.Method;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 实现BaseService抽象类
|
|
|
+ * Created by ZhangShuzheng on 2017/01/07.
|
|
|
+ */
|
|
|
+public abstract class BaseServiceImpl<Mapper, Record, Example> implements BaseService<Mapper, Record, Example> {
|
|
|
+
|
|
|
+ public Mapper mapper;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int countByExample(Example example) {
|
|
|
+ try {
|
|
|
+ Method countByExample = mapper.getClass().getDeclaredMethod("countByExample", example.getClass());
|
|
|
+ Object result = countByExample.invoke(mapper, example);
|
|
|
+ return Integer.parseInt(String.valueOf(result));
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int deleteByExample(Example example) {
|
|
|
+ try {
|
|
|
+ Method deleteByExample = mapper.getClass().getDeclaredMethod("deleteByExample", example.getClass());
|
|
|
+ Object result = deleteByExample.invoke(mapper, example);
|
|
|
+ return Integer.parseInt(String.valueOf(result));
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int deleteByPrimaryKey(Integer id) {
|
|
|
+ try {
|
|
|
+ Method deleteByPrimaryKey = mapper.getClass().getDeclaredMethod("deleteByPrimaryKey", id.getClass());
|
|
|
+ Object result = deleteByPrimaryKey.invoke(mapper, id);
|
|
|
+ return Integer.parseInt(String.valueOf(result));
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int insert(Record record) {
|
|
|
+ try {
|
|
|
+ Method insert = mapper.getClass().getDeclaredMethod("insert", record.getClass());
|
|
|
+ Object result = insert.invoke(mapper, record);
|
|
|
+ return Integer.parseInt(String.valueOf(result));
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int insertSelective(Record record) {
|
|
|
+ try {
|
|
|
+ Method insertSelective = mapper.getClass().getDeclaredMethod("insertSelective", record.getClass());
|
|
|
+ Object result = insertSelective.invoke(mapper, record);
|
|
|
+ return Integer.parseInt(String.valueOf(result));
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<Record> selectByExampleWithBLOBs(Example example) {
|
|
|
+ try {
|
|
|
+ Method selectByExampleWithBLOBs = mapper.getClass().getDeclaredMethod("selectByExampleWithBLOBs", example.getClass());
|
|
|
+ Object result = selectByExampleWithBLOBs.invoke(mapper, example);
|
|
|
+ return (List<Record>) result;
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<Record> selectByExample(Example example) {
|
|
|
+ try {
|
|
|
+ Method selectByExample = mapper.getClass().getDeclaredMethod("selectByExample", example.getClass());
|
|
|
+ Object result = selectByExample.invoke(mapper, example);
|
|
|
+ return (List<Record>) result;
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Record selectByPrimaryKey(Integer id) {
|
|
|
+ try {
|
|
|
+ Method selectByPrimaryKey = mapper.getClass().getDeclaredMethod("selectByPrimaryKey", id.getClass());
|
|
|
+ Object result = selectByPrimaryKey.invoke(mapper, id);
|
|
|
+ return (Record) result;
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int updateByExampleSelective(@Param("record") Record record, @Param("example") Example example) {
|
|
|
+ try {
|
|
|
+ Method updateByExampleSelective = mapper.getClass().getDeclaredMethod("updateByExampleSelective", record.getClass(), example.getClass());
|
|
|
+ Object result = updateByExampleSelective.invoke(mapper, record, example);
|
|
|
+ return Integer.parseInt(String.valueOf(result));
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int updateByExampleWithBLOBs(@Param("record") Record record, @Param("example") Example example) {
|
|
|
+ try {
|
|
|
+ Method updateByExampleWithBLOBs = mapper.getClass().getDeclaredMethod("updateByExampleWithBLOBs", record.getClass(), example.getClass());
|
|
|
+ Object result = updateByExampleWithBLOBs.invoke(mapper, record, example);
|
|
|
+ return Integer.parseInt(String.valueOf(result));
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int updateByExample(@Param("record") Record record, @Param("example") Example example) {
|
|
|
+ try {
|
|
|
+ Method updateByExample = mapper.getClass().getDeclaredMethod("updateByExample", record.getClass(), example.getClass());
|
|
|
+ Object result = updateByExample.invoke(mapper, record, example);
|
|
|
+ return Integer.parseInt(String.valueOf(result));
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int updateByPrimaryKeySelective(Record record) {
|
|
|
+ try {
|
|
|
+ Method updateByPrimaryKeySelective = mapper.getClass().getDeclaredMethod("updateByPrimaryKeySelective", record.getClass());
|
|
|
+ Object result = updateByPrimaryKeySelective.invoke(mapper, record);
|
|
|
+ return Integer.parseInt(String.valueOf(result));
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int updateByPrimaryKeyWithBLOBs(Record record) {
|
|
|
+ try {
|
|
|
+ Method updateByPrimaryKeyWithBLOBs = mapper.getClass().getDeclaredMethod("updateByPrimaryKeyWithBLOBs", record.getClass());
|
|
|
+ Object result = updateByPrimaryKeyWithBLOBs.invoke(mapper, record);
|
|
|
+ return Integer.parseInt(String.valueOf(result));
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int updateByPrimaryKey(Record record) {
|
|
|
+ try {
|
|
|
+ Method updateByPrimaryKey = mapper.getClass().getDeclaredMethod("updateByPrimaryKey", record.getClass());
|
|
|
+ Object result = updateByPrimaryKey.invoke(mapper, record);
|
|
|
+ return Integer.parseInt(String.valueOf(result));
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int deleteByPrimaryKeys(String ids) {
|
|
|
+ try {
|
|
|
+ if (StringUtils.isBlank(ids)) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ String[] idArray = ids.split("-");
|
|
|
+ int count = 0;
|
|
|
+ for (String id : idArray) {
|
|
|
+ if (StringUtils.isBlank(id)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ Method deleteByPrimaryKey = mapper.getClass().getDeclaredMethod("deleteByPrimaryKey", id.getClass());
|
|
|
+ Object result = deleteByPrimaryKey.invoke(mapper, id);
|
|
|
+ count += Integer.parseInt(String.valueOf(result));
|
|
|
+ }
|
|
|
+ return count;
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void initMapper(Mapper mapper) {
|
|
|
+ this.mapper = mapper;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|