
sf.database.mapper.DaoMapperImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sorm Show documentation
Show all versions of sorm Show documentation
java jpa tool for spring
The newest version!
package sf.database.mapper;
import sf.common.wrapper.Page;
import sf.core.DBObject;
import sf.database.dao.DBClient;
import sf.database.dialect.DBDialect;
import sf.database.jdbc.sql.ModelSql;
import sf.database.template.CType;
import sf.dynamicsql.mapper.DynmicSQLMapper;
import sf.dynamicsql.mapper.DynmicSQLMapperImpl;
import sf.jooq.mapper.JooqMapper;
import sf.jooq.mapper.JooqMapperImpl;
import sf.querydsl.mapper.QueryDSLMapper;
import sf.querydsl.mapper.QueryDSLMapperImpl;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* daoMapper实现类
* @param
*/
public class DaoMapperImpl implements DaoMapper {
protected DBClient dbClient;
protected Class domainClass;
protected volatile JooqMapper jooqMapper;
protected volatile QueryDSLMapper queryDSLMapper;
protected volatile DynmicSQLMapper dynmicSQLMapper;
public DaoMapperImpl(Class domainClass, DBClient dbClient) {
this.domainClass = domainClass;
this.dbClient = dbClient;
}
@Override
public int merge(T entity) {
return getDbClient().merge(entity);
}
@Override
public int insert(T t) {
return getDbClient().insert(t);
}
@Override
public int[] insertBatch(List list) {
return getDbClient().batchInsert(list);
}
@Override
public int[] insertBatchFast(List list) {
return getDbClient().batchInsertFast(list);
}
@Override
public int updateById(T entity) {
return getDbClient().update(entity);
}
@Override
public int update(T entity) {
return getDbClient().update(entity);
}
@Override
public int[] updateBatch(List entity) {
return getDbClient().batchUpdate(entity);
}
@Override
public int delete(T entity) {
return getDbClient().delete(entity);
}
@Override
public int deleteById(Object... key) {
return getDbClient().deleteByPrimaryKeys(domainClass, key);
}
@Override
public int[] deleteInBatch(Iterable entities) {
return getDbClient().batchDelete(asList(entities));
}
@Override
public void deleteAllInBatch() {
getDbClient().truncate(domainClass);
}
@Override
public int logicDelete(T entity) {
return getDbClient().logicDelete(entity);
}
@Override
public int logicDeleteById(Object... key) {
return getDbClient().logicDeleteByPrimaryKeys(domainClass, key);
}
///////////////////////////////分割线,写方法在上,读方法在下///////////////////////////////////
@Override
public T unique(Object... keys) {
return getDbClient().selectByPrimaryKeys(domainClass, keys);
}
@Override
public T single(T query) {
return getDbClient().selectOne(query);
}
@Override
public T lock(T query) {
return getDbClient().selectOneForUpdate(query);
}
@Override
public long count() {
DBDialect dialect = getDbClient().getDialect(false);
String sql = ModelSql.getSelectCountSql(dialect, domainClass);
Long count = getDbClient().selectOne(Long.class, sql);
if (count == null) {
count = 0L;
}
return count;
}
@Override
public long count(T query) {
return getDbClient().selectCount(query);
}
@Override
public boolean existsById(Object... id) {
return getDbClient().existsByPrimaryKeys(domainClass, id);
}
@Override
public boolean exists(T query) {
return getDbClient().exists(query);
}
@Override
public List selectList(T query) {
return getDbClient().selectList(query);
}
@Override
public Page selectPage(T query, int start, int size) {
return getDbClient().selectPage(query, start, size);
}
//////////////// 模板sql ///////////////
@Override
public List selectTemplate(String sql, Map paras) {
return getDbClient().selectListTemplate(domainClass, sql, CType.source, paras);
}
@Override
public int executeTemplate(String sql, Map paras) {
return getDbClient().executeTemplate(sql, CType.source, paras);
}
//////////////////////////////////
@Override
public DynmicSQLMapper getDynmicSQLMapper() {
if (dynmicSQLMapper == null) {
dynmicSQLMapper = new DynmicSQLMapperImpl<>(getDbClient(), domainClass);
}
return dynmicSQLMapper;
}
@Override
public JooqMapper getJooqMapper() {
if (jooqMapper == null) {
jooqMapper = new JooqMapperImpl<>(getDbClient(), domainClass);
}
return jooqMapper;
}
@Override
public QueryDSLMapper getQueryDSLMapper() {
if (queryDSLMapper == null) {
queryDSLMapper = new QueryDSLMapperImpl<>(getDbClient(), domainClass);
}
return queryDSLMapper;
}
// //////////////////////// 分割线 ///////////////////////////
private List asList(Iterable entities) {
List list = new ArrayList<>();
for (S entity : entities) {
list.add(entity);
}
return list;
}
@Override
public DBClient getDbClient() {
return dbClient;
}
@Override
public Class getDomainClass() {
return domainClass;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy