文档
测试

mybaits插件开发

POST

说明 / 示例

# 通用dao层 ```java @Repository public interface DynamicSqlProvider<T>{ /** * 查询list结果 * @param queryParam * @param <R> * @return */ @SelectProvider(type= DynamicMapperCustomSql.class,method = "selectInfoSql") <R>List<T> selectListInfoSql(QueryParam queryParam); @SelectProvider(type= DynamicMapperCustomSql.class,method = "selectCountInfoSql") @Results({ @Result(property = "count", column = "count") }) int selectCountInfoSql(QueryParam queryParam); /** * 查询list结果 * @param queryParam * @param <R> * @return */ @SelectProvider(type= DynamicMapperCustomSql.class,method = "selectInfoBySql") <R>List<T> selectListInfoByModel(QueryParam queryParam); /** * 查询记录信息 * @param queryParam * @return */ @SelectProvider(type= DynamicMapperCustomSql.class,method = "selectInfoSql") T selectInfoSql(QueryParam queryParam); /** * 执行动态sql * @param queryParam */ @DeleteProvider( type = DynamicMapperCustomSql.class, method = "executeInfoByModel" ) void executeInfoByModel(QueryParam queryParam); @DeleteProvider( type = DynamicMapperCustomSql.class, method = "executeInfoBySql" ) void executeInfoBySql(String sql); /** * 更新单条记录 * @param queryParam */ @UpdateProvider(type= DynamicMapperCustomSql.class, method = "updateInfoSql") void updateInfoSql(QueryParam queryParam); /** * 删除单条数据 * @param queryParam */ @DeleteProvider(type= DynamicMapperCustomSql.class, method = "deleteInfoSql") void deleteInfoSql(QueryParam queryParam); /** * 插入单条数据 * @param queryParam */ @InsertProvider(type= DynamicMapperCustomSql.class, method="insertInfoSql") void insertInfoSql(QueryParam queryParam); /** * 插入多条数据 * @param list */ @InsertProvider(type = DynamicMapperCustomSql.class,method = "batchInsertInfoSql") void batchInsertInfoSql(@Param("list") List<QueryParam> list); } ``` # 动态Pojo对象注解 ![image.png](https://cos.easydoc.net/24916735/files/k4si8iy6.png) ```java @Data @SqlTableInfo(tableName = "t_user") public class VO extends QueryParam { @SqlInfoFiled(name="test_id",primary=true) private String testId; @SqlInfoFiled(name="v1_type") private String type; @SqlInfoFiled(name="bill_main_id") private String billMainId; } ``` # Sql生成测试样例 ```java private static void selectSql() { DynamicMapperCustomSql dynamicMapperCustomSql=new DynamicMapperCustomSql(); VO vo=new VO(); vo.setSql("select t1.* from t_user t1"); String str=dynamicMapperCustomSql.selectInfoBySql(vo); System.out.println(str); } public static void insert(){ DynamicMapperCustomSql dynamicMapperCustomSql=new DynamicMapperCustomSql(); VO vo=new VO(); String str=dynamicMapperCustomSql.insertInfoSql(vo); System.out.println(str); } public static void batchInsert(){ DynamicMapperCustomSql dynamicMapperCustomSql=new DynamicMapperCustomSql(); VO vo=new VO(); VO vo1=new VO(); List<VO> list=new ArrayList<>(); list.add(vo); list.add(vo1); HashMap map=new HashMap(); map.put("list",list); String str=dynamicMapperCustomSql.batchInsertInfoSql(map); System.out.println(str); } public static void select(){ DynamicMapperCustomSql dynamicMapperCustomSql=new DynamicMapperCustomSql(); VO vo=new VO(); String str=dynamicMapperCustomSql.selectInfoSql(vo); System.out.println(str); } ``` # 项目测试 ## 1.数据库对象 ```java @SqlTableInfo(tableName = "t_bill_data") @Data public class BillInfoVO extends QueryParam { @SqlInfoFiled(name = "bill_main_id",primary = true) private String billMainId; @SqlInfoFiled(name = "bill_code") private String billCode; @SqlInfoFiled(name = "json_data") private String jsonData; } ``` ## 2.实现类调用 ```java @Service public class CctvBillInfoServiceImpl implements ICctvBillInfoService { @Autowired private DynamicSqlProvider dynamicProvider; @Override public void backUpdateFundPaymentInfo(FundBackUpdateParamVO paramVO, String userId) { BillInfoVO vo=new BillInfoVO(); vo.setBillMainId(paramVO.getFundPaymentInfoVOS().get(0).getBillMainId()); BillInfoVO billInfoVO= (BillInfoVO) dynamicProvider.selectInfoSql(vo); String jsonData=billInfoVO.getJsonData(); String json1=jsonData; BillDataVO billDataVO=JSONObject.parseObject(jsonData,BillDataVO.class); } @Override public void testBackUpdateFundPaymentInfo() { BillInfoVO vo=new BillInfoVO(); vo.setBillMainId("00477da6fbb811e9ae8403b570a6adc6"); List<BillInfoVO> billInfoVOS=dynamicProvider.selectListInfoSql(vo); if(billInfoVOS.size()>0){ BillInfoVO billInfoVO=billInfoVOS.get(0); } System.out.println(billInfoVOS.toString()); } } ```