# 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 {
}
```