作者:钟剑华  历史版本:1  更新时间:2024-09-20 15:13

适用版本:所有版本;
完整类名:com.lc.ibps.base.db.mybatis.MybatisTemplateProvider

适用哪些服务?

  1. 通过business

调用方式例子

  • 查询数据
import com.lc.ibps.base.core.util.BeanUtils;
import java.util.Map;

// 执行单条SQL查询
String sql = "select id_,name_ form t_stu where age_>#{p0}";
Object[] params = new Object[] {18};
// TODO 添加参数到params
List<?> queryDatas = mybatisTemplateProvider.query(sql, params);
if (BeanUtils.isNotEmpty(queryDatas)) {
    for (Object object : queryDatas) {
        Map<String, Object> tempMap = (Map<String, Object>)object;
        // TODO 处理数据
    }
}
  • 执行sql
// 单条sql执行多次
String sql = "INSERT INTO t_kfylcsdx (id_,dan_xing_) VALUES (#{p0},#{p1})";
for (int i = 0; i < 1000; i++) {
    List<Object[]> params = new ArrayList<>(100);
    String uid = UniqueIdUtil.getId();
    for (int j = 0; j < 100; j++) {
        Object[] param = new Object[14];
        param[0] = uid + i + j;
        param[1] = "测试" + i + "-" + j;
        params.add(param);
    }
    mybatisTemplateProvider.execute(sql, params);
}

常用方法

/**
 * 执行SQL语句修改数据,单条完整SQL
 *
 * @param sql 
 */
public void execute(String sql);

/**
 * <pre>
 * 执行单条SQL
 * SQL语句使用#{p+N}作为占位符,N即参数下标;
 * 例:insert into t_test(id_,name_) values(#{p0},#{p1})
 * </pre>
 *
 * @param sql
 * @param params 
 */
public void execute(String sql, Object[] params);

/**
 * <pre>
 * 执行单条SQL,处理多条数据
 * SQL语句使用#{p+N}作为占位符,N即参数下标;
 * 例:insert into t_test(id_,name_) values(#{p0},#{p1})
 * </pre>
 *
 * @param sql
 * @param params 
 */
public void execute(String sql, List<Object[]> params);

/**
 * <pre>
 * 执行单条SQL
 * SQL语句使用#{paramName}作为占位符,paramName即参数变量名;
 * 例:insert into t_test(id_,name_) values(#{id},#{name})
 * </pre>
 *
 * @param sql
 * @param params 
 */
public void executeOfMap(String sql, Map<String, Object> params);

/**
 * <pre>
 * 执行单条SQL,处理多条数据
 * SQL语句使用#{paramName}作为占位符,paramName即参数变量名;
 * 例:insert into t_test(id_,name_) values(#{id},#{name})
 * </pre>
 *
 * @param sql
 * @param params 
 */
public void executeOfMaps(String sql, List<Map<String, Object>> params);

/**
 * <pre>
 * 批量执行SQL,并且每条SQL都是多条数据
 * SQL语句使用#{p+N}作为占位符,N即参数下标;
 * 例:insert into t_test(id_,name_) values(#{p0},#{p1})
 * </pre>
 * 
 * @param sqls 
 */
public void execute(Map<String, List<Object[]>> sqls);

/**
 * <pre>
 * 批量执行SQL,并且每条SQL都是多条数据
 * SQL语句使用#{paramName}作为占位符,paramName即参数变量名;
 * 例:insert into t_test(id_,name_) values(#{id},#{name})
 * </pre>
 * 
 * @param sqls 
 */
public void executeOfMaps(Map<String, List<Map<String, Object>>> sqls);

/**
 * 执行SQL查询
 *
 * @param sql
 * @return 
 */
public List<?> query(String sql);

/**
 * 执行SQL分页查询
 *
 * @param sql
 * @param page
 * @return 
 */
public List<?> query(String sql, Page page);

/**
 * <pre>
 * 执行单条SQL
 * SQL语句使用#{p+N}作为占位符,N即参数下标;
 * 例:insert into t_test(id_,name_) values(#{p0},#{p1})
 * </pre>
 *
 * @param sql
 * @param params 
 */
public List<?> query(String sql, Object[] params);

/**
 * 执行SQL条件动态查询
 *
 * @param sql
 * @param queryFilter
 * @param params
 * @return 
 */
public <T> List<T> queryForList(String sql, QueryFilter queryFilter, Map<String, Object> params);

/**
 * 执行SQL分页条件动态查询
 *
 * @param sql
 * @param queryFilter
 * @param params
 * @return 
 */
public <T> PageList<T> queryForListPage(String sql, QueryFilter queryFilter, Map<String, Object> params);

/**
 * 执行SQL执行统计语句查询数据
 *
 * @param sql
 * @param countSql
 * @param params
 * @param startIndex
 * @param pageSize
 * @return 
 */
public <T> PageList<T> queryByCusPage(String sql, String countSql, Map<String, Object> params, Integer startIndex, Integer pageSize);

/**
 * 执行SQL分页动态查询主键数据
 *
 * @param pk
 * @param sql
 * @param queryFilter
 * @param params
 * @return 
 */
public <T> PageList<T> queryPksForListPage(String pk, String sql, QueryFilter queryFilter, Map<String, Object> params);

/**
 * 执行SQL主键动态查询
 *
 * @param pk
 * @param sql
 * @param queryFilter
 * @param params
 * @return 
 */
public <T> List<T> queryPksForList(String pk, String sql, QueryFilter queryFilter, Map<String, Object> params);

/**
 * 解析动态参数
 *
 * @param queryFilter
 * @return 
 */
public Map<String, Object> parseQueryFilter(QueryFilter queryFilter);