# codeGenerator **Repository Path**: xiaoyu1234/codeGenerator ## Basic Information - **Project Name**: codeGenerator - **Description**: Spring mybatis java代码生成器(带注释,依据表的注释生成类属性的注释) 可生成model dao service serviceIml controller Mapper 等文件也可以自定义模板生成与hibernate 相关的model, 模板采用freemarker,其中可以修改xml配置来定义需要生成的数据库,表等信息。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2017-11-06 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 简单的代码生成器(实体类带注释,依据表的注释) =============== 运行环境 ------- ``` JDK1.8 IDEA/eclipse/cmd运行jar ``` 使用方法: ------- ``` 运行org.jypj.dev.main.GenerateCode中的main方法 也可导出jar包运行 ``` 生成的文件 ------- ``` 项目根目录下的generate文件中 如果配置文件中配置为org.jypj.dev 则生成的文件基目录为\generate\org\jypj\dev\*.* ``` 数据库连接以及表名实体类配置 ------- 目前只能生成mysql 以及oracle(使用mysql时请注释掉oracle数据库连接,oracle同理) ------- ``` oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@172.16.30.100:1521:orcl eims eims
org.jypj.dev *.java *Dao.java *Mapper.ftl *Service.java *ServiceImpl.java *Controller.java ``` ##表名和实体类映射的规则(当表名数量太多时可以使用此方法生成) ``` //这里可以自行实现如何有表名得到类名,表明全小写 List entitys = InitDb.getInstence(config, tableName -> { //类名 String className = ""; if (StringUtil.isNotEmpty(config.getTable().getMap().get(tableName))) { className = config.getTable().getMap().get(tableName); } return className; }).initTables(); ``` 最终生成的代码样例 -- entity -- ``` /** * 校园主题活动 * @author yu_chen * @create 2017-11-07 10:24 **/ public class StudentXyzthd implements java.io.Serializable{ private static final long serialVersionUID = 1L; /***/ private String id; /**学生ID*/ private String xsid; /**学生姓名*/ private String xsxm; /**学籍号*/ private String xjh; /**学校ID*/ private String xxid; /**学校名称*/ private String xxmc; /**活动主题*/ private String hdzt; /**活动开始时间*/ private Date hdkssj; /**活动结束时间*/ private Date hdjssj; /**指导教师ID*/ private String zdjsid; ...省略set get方法 } ``` dao --- ``` package org.jypj.dev.dao; import org.jypj.dev.entity.StudentXyzthd; import java.util.List; import java.util.Map; /** * @author yu_chen * @create 2017-11-07 10:24 **/ public interface StudentXyzthdDao { /** * 保存 * 所有字段全都保存 * @param studentXyzthd * @return 保存的数量 */ int saveStudentXyzthd(StudentXyzthd studentXyzthd); /** * 根据ID删除 * @param id 主键ID * @return 删除记录数 */ int deleteStudentXyzthdById(String id); /** * 更新所有字段 * @param studentXyzthd * @return */ int updateStudentXyzthd(StudentXyzthd studentXyzthd); /** * 按ID查询 * @param id 主键ID * @return StudentXyzthd */ StudentXyzthd selectStudentXyzthdById(String id); /** * 按条件查询全部的 * @param map 查询条件 * @return List */ List selectAllByMap(Map map); } ``` mapper -- ``` ID,XSID,XSXM,XJH,XXID,XXMC,HDZT,HDKSSJ,HDJSSJ,ZDJSID insert into zxxs_xyzthd ( ID, XSID, XSXM, XJH, XXID, XXMC, HDZT, HDKSSJ, HDJSSJ, ZDJSID ) values ( #{id,jdbcType=VARCHAR}, #{xsid,jdbcType=VARCHAR}, #{xsxm,jdbcType=VARCHAR}, #{xjh,jdbcType=VARCHAR}, #{xxid,jdbcType=VARCHAR}, #{xxmc,jdbcType=VARCHAR}, #{hdzt,jdbcType=VARCHAR}, #{hdkssj,jdbcType=DATE}, #{hdjssj,jdbcType=DATE}, #{zdjsid,jdbcType=VARCHAR} ) delete from zxxs_xyzthd where ID = #{id,jdbcType=VARCHAR} update zxxs_xyzthd ID=#{id,jdbcType=VARCHAR}, XSID=#{xsid,jdbcType=VARCHAR}, XSXM=#{xsxm,jdbcType=VARCHAR}, XJH=#{xjh,jdbcType=VARCHAR}, XXID=#{xxid,jdbcType=VARCHAR}, XXMC=#{xxmc,jdbcType=VARCHAR}, HDZT=#{hdzt,jdbcType=VARCHAR}, HDKSSJ=#{hdkssj,jdbcType=DATE}, HDJSSJ=#{hdjssj,jdbcType=DATE}, ZDJSID=#{zdjsid,jdbcType=VARCHAR} where ID = #{id,jdbcType=VARCHAR} ``` service -- ``` package org.jypj.dev.service; import org.jypj.dev.entity.StudentXyzthd; import java.util.List; import java.util.Map; /** * @author yu_chen * @create 2017-11-07 10:24 **/ public interface StudentXyzthdService { /** * 保存 * 所有字段全都保存 * @param studentXyzthd * @return */ int saveStudentXyzthd(StudentXyzthd studentXyzthd); /** * 根据ID删除 * @param id 主键ID * @return 删除记录数 */ int deleteStudentXyzthdById(String id); /** * 更新 * 更新所有字段 * @param studentXyzthd * @return */ int updateStudentXyzthd(StudentXyzthd studentXyzthd); /** * 按ID查询 * @parm id 主键ID * @return StudentXyzthd */ StudentXyzthd selectStudentXyzthdById(String id); /** * 按条件查询全部的 * @param map 查询条件 * @return List */ List selectAllByMap(Map map); } ``` serviceImpl ---- ``` package org.jypj.dev.service.impl; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.UUID; import javax.annotation.Resource; import org.springframework.stereotype.Service; import org.jypj.dev.entity.StudentXyzthd; import org.jypj.dev.dao.StudentXyzthdDao; import org.jypj.dev.service.StudentXyzthdService; import org.jypj.dev.util.StringUtil; @Service public class StudentXyzthdServiceImpl implements StudentXyzthdService { @Resource private StudentXyzthdDao studentXyzthdDao; /** * 保存 * 所有字段全都保存 * @param studentXyzthd * @return 保存后的对象包括ID */ public int saveStudentXyzthd(StudentXyzthd studentXyzthd){ if(studentXyzthd.getId()==null||studentXyzthd.getId()==""){ String uuid =UUID.randomUUID().toString().replace("-", "").trim(); studentXyzthd.setId(uuid); } return studentXyzthdDao.saveStudentXyzthd(studentXyzthd); } /** * 根据ID删除 * @param id 主键ID * @return 删除记录数 */ public int deleteStudentXyzthdById(String id){ return studentXyzthdDao.deleteStudentXyzthdById(id); } /** * 更新 * 更新所有字段 * @param studentXyzthd * @return 更新记录数 */ public int updateStudentXyzthd(StudentXyzthd studentXyzthd){ return studentXyzthdDao.updateStudentXyzthd(studentXyzthd); } /** * 按ID查询 * @parm id 主键ID * @return StudentXyzthd */ public StudentXyzthd selectStudentXyzthdById(String id){ return studentXyzthdDao.selectStudentXyzthdById(id); } /** * 按条件查询全部的 * @param map 查询条件 * @return List */ public List selectAllByMap(Map map){ return studentXyzthdDao.selectAllByMap(map); } /** * 按条件查询全部的 * @param studentXyzthd 查询条件 * @return List */ public List selectAllByStudentXyzthd(StudentXyzthd studentXyzthd){ return studentXyzthdDao.selectAllByStudentXyzthd(studentXyzthd); } } ``` controller -- ``` package org.jypj.dev.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; /** * @author yu_chen * @create 2017-11-07 10:24 **/ @Controller @RequestMapping("studentXyzthd") public class StudentXyzthdController { } ```