123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 |
- package com.hywa.banktest.service.impl;
- import com.hywa.banktest.kit.GenericsKit;
- import com.hywa.banktest.kit.SqlKit;
- import com.hywa.banktest.service.BaseService;
- import com.jfinal.plugin.activerecord.*;
- import java.util.*;
- public class BaseServiceImpl<T extends Model<T>> implements BaseService<T>{
- @SuppressWarnings("unchecked")
- Class<T> clazz = GenericsKit.getSuperClassGenricType(getClass());
- Model<T> model = newInstance();
-
- private Model<T> newInstance(){
- try {
- return clazz.newInstance();
- } catch (InstantiationException e) {
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- }
- return null;
- }
- @Override
- public String getSql(String sqlKey) {
- return model.getSql(sqlKey);
- }
-
- @Override
- public boolean save(T entity) {
- String [] primaryKeys = TableMapping.me().getTable(clazz).getPrimaryKey();
- if (primaryKeys.length == 1) {
- entity.set("id", UUID.randomUUID().toString());
- }
- Set<String> columns = TableMapping.me().getTable(clazz).getColumnTypeMap().keySet();
- if (columns.contains("createTime") && null == entity.get("createTime")) {
- entity.set("createTime", new Date());
- }
- return entity.save();
- }
-
-
- @Override
- public boolean update(T entity){
- return entity.update();
- }
-
- @Override
- public boolean delete(T entity) {
- return entity.delete();
- }
- @Override
- public boolean deleteById(Object id) {
- return model.deleteById(id);
- }
- @Override
- public boolean deleteById(Object... ids) {
- return model.deleteById(ids);
- }
- @Override
- public List<T> find(SqlPara sqlPara) {
- return model.find(sqlPara);
- }
- @Override
- public List<T> find(String sql) {
- return model.find(sql);
- }
- @Override
- public List<T> find(String sql, Object... paras) {
- return model.find(sql, paras);
- }
- @Override
- public T findById(Object idValue) {
- return model.findById(idValue);
- }
- @Override
- public T findById(Object... idValues) {
- return model.findById(idValues);
- }
- @Override
- public T findByIdLoadColumns(Object[] idValues, String columns) {
- return model.findByIdLoadColumns(idValues, columns);
- }
- @Override
- public T findByIdLoadColumns(Object idValue, String columns) {
- return model.findByIdLoadColumns(idValue, columns);
- }
- @Override
- public T findFirst(SqlPara sqlPara) {
- return model.findFirst(sqlPara);
- }
- @Override
- public T findFirst(String sql) {
- return model.findFirst(sql);
- }
- @Override
- public T findFirst(String sql, Object... paras) {
- return model.findFirst(sql, paras);
- }
- @Override
- public Page<T> paginate(int pageNumber, int pageSize, String sql, Object... paras) {
- String[] sqls = PageSqlKit.parsePageSql(sql);
- return model.paginate(pageNumber, pageSize, sqls[0], sqls[1], paras);
- }
-
- /**
- *
- * @Title: paginate
- *@author vic
- * @Description: TODO
- * @param @param pageNumber
- * @param @param pageSize
- * @param @param select
- * @param @param sqlExceptSelect from
- * @param @return
- * @return
- * @throws
- */
- @Override
- public Page<T> paginate(int pageNumber, int pageSize, String select, String sqlExceptSelect) {
- return model.paginate(pageNumber, pageSize, select, sqlExceptSelect);
- }
- @Override
- public Page<T> paginate(int pageNumber, int pageSize, String select, String sqlExceptSelect, Object... paras) {
- return model.paginate(pageNumber, pageSize, select, sqlExceptSelect, paras);
- }
- @Override
- public Page<T> paginate(int pageNumber, int pageSize, boolean isGroupBySql, String select, String sqlExceptSelect,
- Object... paras) {
- return model.paginate(pageNumber, pageSize, isGroupBySql, select, sqlExceptSelect, paras);
- }
- @Override
- public List<T> getAll() {
- StringBuffer sql = new StringBuffer();
- sql.append(" select * from ").append(TableMapping.me().getTable(clazz).getName());
- return model.find(sql.toString());
- }
- @Override
- public List<T> getAllByEqualAttr(T entity, String... columns) {
- StringBuffer sbSql = new StringBuffer();
- List<Object> params = new ArrayList<Object>();
- sbSql.append(" select * from " + TableMapping.me().getTable(clazz).getName());
- sbSql.append(" where 1=1 ");
- SqlKit.appendEqualCondition(sbSql, entity, params, columns);
- return model.find(sbSql.toString(), params.toArray());
- }
- @Override
- public List<T> getAllByEqualAttr(boolean isDynamicQuery, T entity, String... columns) {
- StringBuffer sbSql = new StringBuffer();
- List<Object> params = new ArrayList<Object>();
- sbSql.append(" select * from " + TableMapping.me().getTable(clazz).getName());
- sbSql.append(" where 1=1 ");
- SqlKit.appendEqualCondition(isDynamicQuery, sbSql, entity, params, columns);
- return model.find(sbSql.toString(), params.toArray());
- }
- @Override
- public List<T> getAllByEqualAttr(boolean isDynamicQuery, String loadColumns, T entity, String... columns) {
- StringBuffer sbSql = new StringBuffer();
- List<Object> params = new ArrayList<Object>();
- sbSql.append(" select ").append(loadColumns).append(" from " + TableMapping.me().getTable(clazz).getName());
- sbSql.append(" where 1=1 ");
- SqlKit.appendEqualCondition(isDynamicQuery, sbSql, entity, params, columns);
- return model.find(sbSql.toString(), params.toArray());
- }
- @Override
- public T getByEqualAttr(T entity, String... columns) {
- StringBuffer sbSql = new StringBuffer();
- List<Object> params = new ArrayList<Object>();
- sbSql.append(" select * from " + TableMapping.me().getTable(clazz).getName());
- sbSql.append(" where 1=1 ");
- SqlKit.appendEqualCondition(sbSql, entity, params, columns);
- return model.findFirst(sbSql.toString(), params.toArray());
- }
- @Override
- public T getByEqualAttr(boolean isDynamicQuery, T entity, String... columns) {
- StringBuffer sbSql = new StringBuffer();
- List<Object> params = new ArrayList<Object>();
- sbSql.append(" select * from " + TableMapping.me().getTable(clazz).getName());
- sbSql.append(" where 1=1 ");
- SqlKit.appendEqualCondition(isDynamicQuery, sbSql, entity, params, columns);
- return model.findFirst(sbSql.toString(), params.toArray());
- }
- @Override
- public T getByEqualAttr(boolean isDynamicQuery, String loadColumns, T entity, String... columns) {
- StringBuffer sbSql = new StringBuffer();
- List<Object> params = new ArrayList<Object>();
- sbSql.append(" select ").append(loadColumns).append(" from " + TableMapping.me().getTable(clazz).getName());
- sbSql.append(" where 1=1 ");
- SqlKit.appendEqualCondition(isDynamicQuery, sbSql, entity, params, columns);
- return model.findFirst(sbSql.toString(), params.toArray());
- }
- @Override
- public long getCountByEqualAttr(T entity, String... columns) {
- StringBuffer sbSql = new StringBuffer();
- List<Object> params = new ArrayList<Object>();
- sbSql.append(" select count(*) total from " + TableMapping.me().getTable(clazz).getName());
- sbSql.append(" where 1=1 ");
- SqlKit.appendEqualCondition(sbSql, entity, params, columns);
- return Db.queryFirst(sbSql.toString(), params.toArray());
- }
- @Override
- public long getCountByEqualAttr(boolean isDynamicQuery, T entity, String... columns) {
- StringBuffer sbSql = new StringBuffer();
- List<Object> params = new ArrayList<Object>();
- sbSql.append(" select count(*) total from " + TableMapping.me().getTable(clazz).getName());
- sbSql.append(" where 1=1 ");
- SqlKit.appendEqualCondition(isDynamicQuery, sbSql, entity, params, columns);
- return Db.queryFirst(sbSql.toString(), params.toArray());
- }
- }
|