多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 后台 建表时需要在SVN上“/现场审计平台/08程序/c脚本”中先上传脚本文件。 文件名规范和序列规范请参考现有文件的案例。 一、首先在po包下建立实体类并加上如下注解,如下图所示: ![](https://box.kancloud.cn/1f7fdef95739c018cabb8b948c9925b1_576x257.png) @TableName用于注释表,其中的属性有:value(对应的表名)resultMap(对应输出结果集,可不填) @TableField用于注释字段,其中的属性有: exist(表示数据库中是否有这个属性对应的字段)value(对应的字段名);el(当该Field为类对象时, 可使用#{对象.属性}来映射到数据表)validate(默认非null 判断) @TableId用于注释主键,其中的属性有:value(对应的字段名)type(主键ID,默认ID自增) 实体类中如果有以下公共属性可以选择继承基类BaseEntity或DataEntity, BaseEntity中有一个属性 /** * 是否启用 */ private String cisuse; DataEntity继承了BaseEntity,其中有7个属性 private Integer ccreator; private String ccreatorname; private Date dcreatetime; private Integer cmodifier; private String cmodifiername; private Date cmodifiedtime; /** * 租户ID */ private String ctenantid; 二、建立Dao和xml文件 ![](https://box.kancloud.cn/439bd97eca97f83f28c3596738a0e990_512x116.png) ![](https://box.kancloud.cn/441310399e2d75f6b8f6c71c8b36e84b_590x189.png) 三、建立service层 ![](https://box.kancloud.cn/c7bb76c63f41244f3ebe3c8a5d570b9b_554x259.png) ![](https://box.kancloud.cn/346982e5579bd1cf9aadfb9c2090c692_554x123.png) 以下是CommonServiceImpl中所有已经实现的方法 /** * 查找序列下一个值 * @param seq 序列名称 * @return */ public Long selectKey(String seq); /** * <p> * 插入一条记录 * </p> * * @param entity * 实体对象 * @return boolean */ boolean insert(T entity); /** * <p> * 插入(批量),该方法不适合 Oracle * </p> * * @param entityList * 实体对象列表 * @return boolean */ boolean insertBatch(List<T> entityList); /** * <p> * 插入(批量) * </p> * * @param entityList * 实体对象列表 * @param batchSize * * @return boolean */ boolean insertBatch(List<T> entityList, int batchSize); /** * <p> * 批量修改插入 * </p> * * @param entityList * 实体对象列表 * @return boolean */ boolean insertOrUpdateBatch(List<T> entityList); /** * <p> * 批量修改插入 * </p> * * @param entityList * 实体对象列表 * @param batchSize * * @return boolean */ boolean insertOrUpdateBatch(List<T> entityList, int batchSize); /** * <p> * 根据 ID 删除 * </p> * * @param id * 主键ID * @return boolean */ boolean deleteById(Serializable id); /** * <p> * 根据 columnMap 条件,删除记录 * </p> * * @param columnMap * 表字段 map 对象 * @return boolean */ boolean deleteByMap(Map<String, Object> columnMap); /** * <p> * 根据 entity 条件,删除记录 * </p> * * @param wrapper * 实体包装类 {@link Wrapper} * @return boolean */ boolean delete(Wrapper<T> wrapper); /** * <p> * 删除(根据ID 批量删除) * </p> * * @param idList * 主键ID列表 * @return boolean */ boolean deleteBatchIds(List<? extends Serializable> idList); /** * <p> * 根据 ID 修改 * </p> * * @param entity * 实体对象 * @return boolean */ boolean updateById(T entity); /** * <p> * 根据 whereEntity 条件,更新记录 * </p> * * @param entity * 实体对象 * @param wrapper * 实体包装类 {@link Wrapper} * @return boolean */ boolean update(T entity, Wrapper<T> wrapper); /** * <p> * 根据ID 批量更新 * </p> * * @param entityList * 实体对象列表 * @return boolean */ boolean updateBatchById(List<T> entityList); /** * <p> * TableId 注解存在更新记录,否插入一条记录 * </p> * * @param entity * 实体对象 * @return boolean */ boolean insertOrUpdate(T entity); /** * <p> * 根据 ID 查询 * </p> * * @param id * 主键ID * @return T */ T selectById(Serializable id); /** * <p> * 查询(根据ID 批量查询) * </p> * * @param idList * 主键ID列表 * @return List<T> */ List<T> selectBatchIds(List<? extends Serializable> idList); /** * <p> * 查询(根据 columnMap 条件) * </p> * * @param columnMap * 表字段 map 对象 * @return List<T> */ List<T> selectByMap(Map<String, Object> columnMap); /** * <p> * 根据 Wrapper,查询一条记录 * </p> * * @param wrapper * 实体对象 * @return T */ T selectOne(Wrapper<T> wrapper); /** * <p> * 根据 Wrapper 条件,查询总记录数 * </p> * * @param wrapper * 实体对象 * @return int */ int selectCount(Wrapper<T> wrapper); /** * <p> * 查询列表 * </p> * * @param wrapper * 实体包装类 {@link Wrapper} * @return */ List<T> selectList(Wrapper<T> wrapper); /** * <p> * 翻页查询 * </p> * * @param page * 翻页对象 * @return */ Page<T> selectPage(Page<T> page); /** * <p> * 翻页查询 * </p> * * @param page * 翻页对象 * @param wrapper * 实体包装类 {@link Wrapper} * @return */ Page<T> selectPage(Page<T> page, Wrapper<T> wrapper); 四、建立Control ![](https://box.kancloud.cn/ead9ae638cc618be1f025fcb66921334_554x256.png)