代码生成器后端原理解析
GenerateInput 封装数据的获得
1、第一次ajax交互传回前端的GenerateDetail 封装对象,代码如下:
@Override
public List<BeanField> listBeanField(String tableName) {
//首先调用jdbcTemplate.query数据库查询工具从information_schema.columns拿到栏目表中的符合条件的数据集并且封装到BeanField对象里。jdbcTemplate.query(sqlr,String数组对象,RowMapper对象)
List<BeanField> beanFields = jdbcTemplate.query(
"select column_name, data_type, column_comment, column_default FROM information_schema.columns WHERE table_name= ? and table_schema = (select database())",
new String[] { tableName }, beanFieldMapper);
if (CollectionUtils.isEmpty(beanFields)) {
throw new IllegalArgumentException("表" + tableName + "不存在");
}
//下列是 jdbcTemplate.query参数beanFieldMapper生成方法,把数据库查询的数据封装到beanField
private RowMapper<BeanField> beanFieldMapper =