美文网首页
java自动生成代码

java自动生成代码

作者: Sunshine小boy | 来源:发表于2017-07-19 17:16 被阅读0次

1.与数据库建立连接

在DBUtil中设置数据库相关的参数

Class.forName(driverName);

conn = DriverManager.getConnection(url, user, password);

2.获得数据库中的所有表

Mapmaps = new HashMap();

PreparedStatement pstate = conn.prepareStatement("show table status");

ResultSet results = pstate.executeQuery();

while (results.next()) {

String tableName = results.getString("NAME");

String comment = results.getString("COMMENT");

maps.put(tableName, comment);

}

3.获得每个表中的信息

封装一个实体来存储表中的信息

PreparedStatement pstate = conn.prepareStatement("show full fields from "        + tableName);    

ResultSet results = pstate.executeQuery();    

List  lists = new ArrayList();

while (results.next()) {

Column column = new Column();

String field = results.getString("FIELD");

column.setFeildMapper(field);

String fieldName = processField(field);

column.setFeild(fieldName);

String type = processType(results.getString("TYPE"));

String comment = results.getString("COMMENT");

column.setType(type);

column.setComment(comment);

lists.add(column);

}

4.拼串输出

将固定代码中需要变动的字段从实体中取拼串写入文档中

例如给表生成po:

public class WritePo {    

public static void createPo(String path,String packageName,String upTable, String lowTable, List columns) throws IOException {

File folder = new File(path + lowTable + "/po");

if (!folder.exists()) {

folder.mkdirs();

}

File beanFile = new File(folder + "/" + upTable + ".java");

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(

new FileOutputStream(beanFile)));

bw.write("package "+packageName+lowTable+".po;");

bw.newLine();

bw.write("import java.io.Serializable;");

bw.newLine();

// bw.write("import lombok.Data;");

// bw.write("import javax.persistence.Entity;");

bw.newLine();

bw.write("@SuppressWarnings(\"serial\")");

bw.newLine();

// bw.write("@Entity");

// bw.write("@Data");

// bw.newLine();

bw.write("public class " + upTable + " implements Serializable {");

bw.newLine();

bw.newLine();

int size = columns.size();

for (Column vo : columns) {

// bw.write("\t/**" + comments.get(i) + "**/");

bw.write("\t/**");

bw.newLine();

bw.write("\t *" + vo.getComment());

bw.newLine();

bw.write("\t **/");

bw.newLine();

bw.write("\tprivate " + vo.getType() + " " + vo.getFeild() + ";");

bw.newLine();

bw.newLine();

}

bw.newLine();

// 生成get 和 set方法

String tempField = null;

String _tempField = null;

String tempType = null;

for (Column vo : columns) {

tempType = vo.getType();

_tempField = vo.getFeild();

tempField = _tempField.substring(0, 1).toUpperCase()

+ _tempField.substring(1);

bw.newLine();

// bw.write("\tpublic void set" + tempField + "(" + tempType + " _" +

// _tempField + "){");

bw.write("\tpublic void set" + tempField + "(" + tempType + " "

+ _tempField + "){");

bw.newLine();

// bw.write("\t\tthis." + _tempField + "=_" + _tempField + ";");

bw.write("\t\tthis." + _tempField + " = " + _tempField + ";");

bw.newLine();

bw.write("\t}");

bw.newLine();

bw.newLine();

bw.write("\tpublic " + tempType + " get" + tempField + "(){");

bw.newLine();

bw.write("\t\treturn this." + _tempField + ";");

bw.newLine();

bw.write("\t}");

bw.newLine();

}

bw.newLine();

bw.write("}");

bw.newLine();

bw.flush();

bw.close();

}

}

最终的效果

后台的增删改查功能都可以生成!希望对大家有帮助!

相关文章

  • AutoValue

    Google 的开源项目,用于自动补全生成 Java 模板代码,包括以下代码的自动生成: equals hashC...

  • Java代码生成工具

    主题:java代码生成工具。 自动生成Bean,Dao,mapper.xml,Service,ServiceImp...

  • java自动生成代码

    1.与数据库建立连接 在DBUtil中设置数据库相关的参数 Class.forName(driverName); ...

  • ListView

    V##编写代码listView #####新建一个java自动生成xml ####java里面打: ``` pac...

  • Java文档自动生成

    java-api-doc 励志做java届最好的文档生成工具,自动解析代码生成api接口文档,前后台分离开发的福音...

  • macOS grpc自动生成java代码问题

    遇到了macOS grpc自动生成java代码问题 系统版本: macOS catalina 10.15IDEA:...

  • 3.2-iOS开发之机智云设备接入MCU代码自动生成介绍

    一、MCU代码自动生成服务介绍: 前文需知 1、什么是“代码自动生成工具” 自动生成的代码实现了机智云通信协议的解...

  • java基本程序设计

    先来一段简单的java代码 注意大小写,这是一个Java程序正确的结构 java /** **/自动生成文档 un...

  • Api文档自动生成工具

    java开发,根据代码自动生成api接口文档工具,支持RESTful风格,今天我们来学一下api-doc的生成 预...

  • Android各开发文件夹用途

    src:存放所有的*.java源程序。 gen:为ADT插件自动生成的代码文件保存路径,里面的R.java将保存所...

网友评论

      本文标题:java自动生成代码

      本文链接:https://www.haomeiwen.com/subject/zpdrhxtx.html