conn=DriverManager.getConnection(url, 用户, 密码);
2.获取数据库所有表
Mapmaps=new HashMap();
PreparedStatement pstate=conn.prepareStatement("显示表状态");
ResultSet 结果=pstate.executeQuery();
while (结果.next()) {
String tableName=results.getString("NAME");
字符串评论=results.getString("COMMENT");
地图.put(表名, 评论);
}
3.获得每个表中的信息
封装一个实体来存储表中的信息
PreparedStatement pstate=conn.prepareStatement("显示" + tableName 中的完整字段);
ResultSet 结果=pstate.executeQuery();
列表列表=new ArrayList();
while (结果.next()) {
列列=new Column();
字符串字段=results.getString("FIELD");
列.setFeildMapper(字段);
String 字段名称=processField(field);
列.setFeild(字段名);
字符串类型=processType(results.getString("TYPE"));
字符串评论=results.getString("COMMENT");
列.setType(类型);
列.setComment(评论);
列表.添加(列);
}
4.拼串输出
从实体中取出固定代码中需要更改的字段,写入文档中。
例如,为表生成po:
公共类WritePo {
公共静态无效createPo(字符串路径,字符串包名称,字符串upTable,字符串lowTable,列表列)抛出IOException {
文件夹=new File(path + lowTable + "/po");
if (!folder.exists()) {
文件夹.mkdirs();
}
File beanFile=new File(文件夹+ "/" + upTable + ".java");
BufferedWriter bw=新BufferedWriter(新OutputStreamWriter(
新的FileOutputStream(beanFile)));
bw.write("包"+packageName+lowTable+".po;");
bw.newLine();
bw.write("导入java.io.Serialized;");
bw.newLine();
//bw.write("导入lombok.Data;");
//bw.write("导入javax.persistence.Entity;");
bw.newLine();
bw.write("@SuppressWarnings("串行")");
bw.newLine();
//bw.write("@Entity");
//bw.write("@Data");
//bw.newLine();
bw.write("公共类" + upTable + " 实现可序列化{");
bw.newLine();
bw.newLine();
int 大小=columns.size();
for(列vo : 列){
//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方法
字符串tempField=null;
字符串_tempField=null;
字符串tempType=null;
for(列vo : 列){
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("ttthis." + _tempField + "=_" + _tempField + ";");
bw.write("ttthis." + _tempField + "=" + _tempField + ";");
bw.newLine();
bw.write("t}");
bw.newLine();
bw.newLine();
bw.write("tpublic " + tempType + " get" + tempField + "(){");
bw.newLine();
bw.write("ttreturn this." + _tempField + ";");
bw.newLine();
bw.write("t}");
bw.newLine();
}
bw.newLine();
bw.write("}");
bw.newLine();
bw.flush();
bw.close();
}
}
如果你还想了解更多这方面的信息,记得收藏关注本站。
【Java代码自动生成解决方案详解】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
Java自动生成代码是不是效率超高啊?
有11位网友表示赞同!
学习编程确实很费时间,这方面能省点事就省事哈!
有9位网友表示赞同!
这样一来开发的速度应该会更快一些吧?
有20位网友表示赞同!
对新手来说或许有点帮助,可以快速入门?
有11位网友表示赞同!
不知道这种模式的代码质量怎么样啊?
有5位网友表示赞同!
会不会太依赖工具了?还是得掌握基础知识。
有11位网友表示赞同!
听说有一些框架或者IDE都支持自动生成部分代码?
有17位网友表示赞同!
这方面技术越来越发达了,以后还能干啥呀?
有10位网友表示赞同!
想试一下这种自动生成代码的体验感觉很新奇!
有16位网友表示赞同!
对于大型项目来说,这种方法实用吗?
有17位网友表示赞同!
自动生成代码会取代程序员的岗位吗?
有11位网友表示赞同!
这门技术是不是需要一定的编程基础才能使用呢?
有20位网友表示赞同!
学习一下这方面的话,对以后职业发展有帮助吗?
有16位网友表示赞同!
自动生成代码能生成多复杂的逻辑代码?
有8位网友表示赞同!
有没有哪些工具可以推荐下?
有14位网友表示赞同!
这种方式会影响代码的可读性和可维护性吗?
有9位网友表示赞同!
这个领域未来发展的前景怎么样?
有12位网友表示赞同!
感觉这是一个很有潜力的技术,希望能应用得越来越广泛。
有14位网友表示赞同!
想了解一下自动生成代码有哪些局限性?
有17位网友表示赞同!
这方面有没有相关的学习资源可以推荐吗?
有7位网友表示赞同!