继续写 controller.vm
package com.rb.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.github.pagehelper.PageInfo;
#if(${modelName} == 'menu')
import com.rb.model.Menu;
import com.rb.service.MenuService;
#else
import com.rb.model.Menu;
import com.rb.service.MenuService;
import com.rb.model.${modelClass};
import com.rb.service.${modelClass}Service;
#end
@RequestMapping("/${modelName}")
@Controller
public class ${modelClass}Controller {
#if(${modelName} == 'menu')
@Autowired
private ${modelClass}Service ${modelName}Service;
#else
@Autowired
private ${modelClass}Service ${modelName}Service;
@Autowired
private MenuService menuService;
#end
@ResponseBody
@RequestMapping("/delete.do")
public boolean delete(Integer id){
try{
${modelName}Service.delete(id);
}catch(Exception e){
System.out.println(e.getMessage());
return false;
}
return true;
}
@ResponseBody
@RequestMapping("/create.do")
public boolean create(${modelClass} ${modelName}){
try{
${modelName}Service.create(${modelName});
}catch(Exception e){
System.out.println(e.getMessage());
return false;
}
return true;
}
@ResponseBody
@RequestMapping("/findById.do")
public ${modelClass} findById(Integer id){
return ${modelName}Service.findById(id);
}
@ResponseBody
@RequestMapping("/list.do")
public String list(${modelClass} ${modelName},Model model,
@RequestParam(required=true,value="pageNum",defaultValue="1")Integer pageNum,
@RequestParam(required=true,value="pageSize",defaultValue="3")Integer pageSize
){
PageInfo<${modelClass}> ${modelName}s = ${modelName}Service.list(pageNum, pageSize, ${modelName});
model.addAttribute("pageInfo",${modelName}s);
return "${modelName}";
}
}
在CodeBuilder加入以下代码 运行
//controller
Template controllerVm = ve.getTemplate("/WebContent/WEB-INF/vm/controller.vm");
merge(controllerVm,ctx,rootPath + "/src/com/rb/controller/" + modelClass + "Controller.java");
controller包下会出现menuController
code包下 添加CodeBean.java
package com.rb.code;
public class CodeBean {
private String columnName;//字段名字,good_name
private String columnType;//类型
private String columnComment;//注释
private String attrName;//goodName
private String uperName;//GoodName set/get
public String getColumnName() {
return columnName;
}
public void setColumnName(String columnName) {
this.columnName = columnName;
}
public String getColumnType() {
return columnType;
}
public void setColumnType(String columnType) {
this.columnType = columnType;
}
public String getColumnComment() {
return columnComment;
}
public void setColumnComment(String columnComment) {
this.columnComment = columnComment;
}
public String getAttrName() {
return attrName;
}
public void setAttrName(String attrName) {
this.attrName = attrName;
}
public String getUperName() {
return uperName;
}
public void setUperName(String uperName) {
this.uperName = uperName;
}
}
CodeBuilder.java 添加 如下代码
private static List<CodeBean> selectColumn(String modelName) {
List<CodeBean> list = new ArrayList<CodeBean>();
//java.sql里面的包
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
//注册数据库驱动
Class.forName("com.mysql.jdbc.Driver");
//创建数据库连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/shop", "root", "");
//sql语句
String sql = " select t.COLUMN_NAME,t.DATA_TYPE,t.COLUMN_COMMENT "
+ " from information_schema.`COLUMNS` t "
+ " where t.TABLE_NAME='menu' "
+ " and t.TABLE_SCHEMA='shop' ";
//执行
ps = conn.prepareStatement(sql);
//获取查询结果
rs = ps.executeQuery();
//循环遍历查询结果,查到columnList里面
while (rs.next()) {
CodeBean bean = new CodeBean();
bean.setColumnName(rs.getString(1));
bean.setColumnComment(rs.getString(3));
//类型
String type = rs.getString(2);
if (type.equalsIgnoreCase("varchar") || type.equalsIgnoreCase("varchar2")) {//字符串
bean.setColumnType("String");
}else if(type.equalsIgnoreCase("int") || type.equalsIgnoreCase("integer")){//整数
bean.setColumnType("Integer");
}else if (type.equalsIgnoreCase("float") ||
type.equalsIgnoreCase("double") ||
type.equalsIgnoreCase("decimal")) {//小数 float double decimal
bean.setColumnType("Double");
}else{
bean.setColumnType("String");
}
// good_name goodName setGoodName
bean.setAttrName(CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, bean.getColumnName()));
bean.setUperName(CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, bean.getColumnName()));
list.add(bean);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
rs.close();
ps.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return list;
}
private static void merge(Template template,VelocityContext ctx,String path){
PrintWriter writer = null;
try {
writer = new PrintWriter(path);
template.merge(ctx, writer);
writer.flush();
} catch (Exception e) {
e.printStackTrace();
}finally{
writer.close();
}
}
最后 运行 CodeBuilder.java