人人开源的renren-generator的使用
1.使用git clone命令将renren-generator下载到本地
2.打开application.yml根据自己数据库进行配置,支持mysql、oracle、sqlserver、postgresql、mongodb多种数据库。
server:
port: 80
# mysql
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
#MySQL配置
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: 123456
3.打开generator.properties根据自己包进行配置(这里一定要和自己项目的包目录一致,否则会给自己带来很多不必要的麻烦!!)
#代码生成器,配置信息
mainPath=hzt
#包名
package=hzt.gulimall
moduleName=product
#作者
author=Steven
#Email
email=1111111111@qq.com
#表前缀(类名不会包含表前缀)
tablePrefix=wms_
4.重点配置:
package----对应自己整个项目的包名
moduleName----对应不同的模块的名字
例如:这里我需要将package设置为hzt.gulimall,moduleName设置为product
tablePrefix----对应数据库中的表共有的表名前缀,在创建类的时候就可以省略该前缀,直接取前缀后面的字符为类命名,注意:前提是你的表有共同的前缀名,否则不要写。
5.renren-generator的核心,可以根据自己的需求进行更改,具体如下:
所有的生成模板都在template中,包含前端和后端
这里以生成controller的模板为例:
package ${package}.${moduleName}.controller;
import java.util.Arrays;
import java.util.Map;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import ${package}.${moduleName}.entity.${className}Entity;
import ${package}.${moduleName}.service.${className}Service;
import ${mainPath}.common.utils.PageUtils;
import ${mainPath}.common.utils.R;
/**
* ${comments}
*
* @author ${author}
* @email ${email}
* @date ${datetime}
*/
@RestController
@RequestMapping("${moduleName}/${pathName}")
public class ${className}Controller {
@Autowired
private ${className}Service ${classname}Service;
/**
* 列表
*/
@RequestMapping("/list")
@RequiresPermissions("${moduleName}:${pathName}:list")
public R list(@RequestParam Map<String, Object> params){
PageUtils page = ${classname}Service.queryPage(params);
return R.ok().put("page", page);
}
/**
* 信息
*/
@RequestMapping("/info/{${pk.attrname}}")
@RequiresPermissions("${moduleName}:${pathName}:info")
public R info(@PathVariable("${pk.attrname}") ${pk.attrType} ${pk.attrname}){
${className}Entity ${classname} = ${classname}Service.getById(${pk.attrname});
return R.ok().put("${classname}", ${classname});
}
/**
* 保存
*/
@RequestMapping("/save")
@RequiresPermissions("${moduleName}:${pathName}:save")
public R save(@RequestBody ${className}Entity ${classname}){
${classname}Service.save(${classname});
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
@RequiresPermissions("${moduleName}:${pathName}:update")
public R update(@RequestBody ${className}Entity ${classname}){
${classname}Service.updateById(${classname});
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
@RequiresPermissions("${moduleName}:${pathName}:delete")
public R delete(@RequestBody ${pk.attrType}[] ${pk.attrname}s){
${classname}Service.removeByIds(Arrays.asList(${pk.attrname}s));
return R.ok();
}
如果我们不需要@RequiresPermissions这个用来做权限验证的注解,可以将其删除或者注解掉,同时去掉导入import org.apache.shiro.authz.annotation.RequiresPermissions;
甚至可以根据自己的需求对模板中提供的方法进行删除或修改(一定要确定后再对模板进行修改,否则后面生成的类都需要一个个的修改,很麻烦!!)
修改后的模板:
package ${package}.${moduleName}.controller;
import java.util.Arrays;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import ${package}.${moduleName}.entity.${className}Entity;
import ${package}.${moduleName}.service.${className}Service;
import ${mainPath}.common.utils.PageUtils;
import ${mainPath}.common.utils.R;
/**
* ${comments}
*
* @author ${author}
* @email ${email}
* @date ${datetime}
*/
@RestController
@RequestMapping("${moduleName}/${pathName}")
public class ${className}Controller {
@Autowired
private ${className}Service ${classname}Service;
/**
* 列表
*/
@RequestMapping("/list")
//@RequiresPermissions("${moduleName}:${pathName}:list")
public R list(@RequestParam Map<String, Object> params) {
PageUtils page = ${classname}Service.queryPage(params);
return R.ok().put("page", page);
}
这里我只删除了@RequiresPermissions注解
6.启动renren-generator服务,浏览器访问80端口,选中需要的数据表生成后,将代码下载到本地,再将其复制到自己的项目中即可!