### 1. 数据库扩展 简介 > dobbinfw已经集成mybatis-plus,其功能已经很强大,本不用扩展。为了方便使用,对数据库进行轻微扩展。 ### 2. 功能 #### 2.1. 查询dto ```java // 通过ID查询对象,并且携带子表数据 default DTO selectByIdDto(Long id, Class clazz) ``` 使用方法: 1). 在属性上注解@ LeafTable,表示子表。Leaf是叶子子表,意思是,只会向下传递一层。 ```java @Data @ApiEntity(description = "采购退货单实体") public class ErpPurchaseReturnDTO extends SuperDTO implements Serializable { ... @ApiField(description = "商品列表") @LeafTable @NotNull(message = "商品列表不能为空") private List skuList; } ``` 2).子表上添加@ForeignKey注解,表示这是一个外键字段。 ```java @Data @TableName("unierp_erp_purchase_return_sku") public class ErpPurchaseReturnSkuDO extends SuperDO implements Serializable { @ForeignKey private Long returnId; ... } ``` 3).调用查询 ```java public ErpPurchaseReturnDTO detail(Long returnId, Long adminId) throws ServiceException { return erpPurchaseReturnMapper.selectByIdDto(returnId, ErpPurchaseReturnDTO.class); } ``` #### 2.2. 插入dto ```java // 注解使用方式与上面一致 default Integer insertDto(Object dto) ``` #### 2.3. 删除dto ```java // 注解使用方式与上面一致 default Integer deleteByIdDto(Serializable id, Class clazz) ``` #### 2.4. 自动建表 打开这个配置T/F (true/false ),在项目启动时会自动建表。这个比JPA的功能弱很多,因为没办法判断非空、长度之类的,注解也不要求提供。 ```properties com.dobbinsoft.fw.auto-build-table=T ``` 自动建表手动调用IMapper下的: ```java Integer tableInit(); ``` #### 2.5. 一个SQL批量插入 这个仅支持MySQL,其他类型数据库请不要使用 ```java Integer insertBatchSomeColumn(Collection entityList); ```