1、效果
方便看效果,新建一个全新的工程:
然后编写一个可执行的main方法,指定数据库驱动以及数据库地址等配置信息点击执行:
CodeGenerateUtil.startAutoGenerateCode("jdbc:postgresql://", "localhost:5432/oms_tank_info", "tank_info",
"postgres", "123456", "zhaoxu", "tankInfomodule", "com.supcon.mare",
"oms");
执行之后看到多了一些文件,这些就是自动编写好的代码,包括前端的ts请求文件,以及自动生成的接口
如果想生成某个数据库下所有表(表最少需要有一个字段):
static String userName = "root";
static String password = "123456";
static String url = "localhost:3306/nacos?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false";
static String prepend = "jdbc:mysql://";
static String tableName = "";
static String auther = "zhaoxu";
static String moduleName = "testmodule";
static String packageName = "com.supcon.mare";
static String mainPath = "oms";
public static void main(String[] args) throws SQLException, NoSuchFieldException, IllegalAccessException {
//设置请求参数
TableRequestVO tableRequestVO = new TableRequestVO();
tableRequestVO.setUsername(userName);
tableRequestVO.setUrl(url);
tableRequestVO.setPrepend(prepend);
tableRequestVO.setPassword(password);
tableRequestVO.setTablename(tableName);
tableRequestVO.setCurrentPage(1);
DynamicVO dynamicVO = DynamicVO.parseMap(new GenerateCodeServiceImpl().queryTable(tableRequestVO));
//查询对应数据库下所有的表
List<Entity> tables = dynamicVO.getToObject("tables" );
tables.forEach(item -> {
try {
//生成所有表
CodeGenerateUtil.startAutoGenerateCode(prepend, url, item.getStr("tableName" ),
userName, password, auther, moduleName, packageName, mainPath);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
});
}
然后使用springboot启动起来,还会有许多自动生成的接口比如查users表所有信息:
2、自动生成的接口示例
2.1 通过属性条件组合查询
http://localhost:18276/oms/tankInfo/findAll?tankName=T8&tankCode=5401&tankType=2&tankArea.id=707
可作为条件查询的属性为实体类的所有属性字段,默认所有字符串为模糊查询,可使用excludeAttr采用精确查询
也有排序功能,比如传参数sorter={'tankAreaId':'desc'},等号后需要进行ecodingurl转换
2.2新增
post请求,默认寻找valid属性,没有valid属性跳过保存
2.3通过valid属性假删
http://localhost:18276/oms/tankInfo/80182
delete请求,80182为主键id,多个用逗号隔开
2.4修改
http://localhost:18276/oms/tankInfo
和新增一样,put请求
2.5 通过属性查询某一个实体信息
http://localhost:18276/oms/tankInfo/tankName/T8105 可作为条件查询的属性为实体类的所有属性字段
2.6分页查询
可作为条件查询的属性为实体类的所有属性字段,默认所有字符串为模糊查询,可使用excludeAttr采用精确查询
也有排序功能,比如传参数sorter={'tankAreaId':'desc'},等号后需要进行ecodingurl转换
2.6通过某个属性值查询实体,返回为列表
http://localhost:18276/oms/tankInfo/list/tankName/T8201
查询多个条件值用逗号隔开,属性加conditionType=list
http://localhost:18276/oms/tankInfo/list/tankName/T8201,T8202?conditionType=list