JavaWeb自动生成PO文件

编程入门 行业动态 更新时间:2024-10-18 03:25:36

JavaWeb<a href=https://www.elefans.com/category/jswz/34/1766270.html style=自动生成PO文件"/>

JavaWeb自动生成PO文件

JavaWeb自动生成PO文件

在做javaweb中,需要建立与数据库中的表相映射的java对象也就是PO。在一个项目中往往一个数据有上百张的表,如果需要PO都要一个一个手动建立PO,这样操作起来非常麻烦也很浪费时间。

对与这种简单的重复操作就应该想办法进行封装,于是我就直接通过Java代码去自动生成项目所需的PO文件。
项目地址:

封装

主方法

private static Connection con = null;
private static ResultSet rs = null; 
private static ResultSet bs = null; 
private static DatabaseMetaData dma = null; //传入 Connection 与要生成PO的存放包名
public static void FoundPo(Connection conts,String Paurl) {try {  con = conts;dma = con.getMetaData();//获取数据库的元数据 //将包名.转换为路径\\String Paurlnj=Paurl.replace(".", "\\");//放入src目录String path = ".\\src\\"+Paurlnj;//判断目录是否存在,不存在则创建File directory = new File(path);if(!directory.exists()){ directory.mkdirs(); //创建目录}//读取数据库的表rs = dma.getTables(null, null, null, new String[]{"TABLE"});while(rs.next()){//获取表名String bname = (String) rs.getObject("TABLE_NAME");  			bname=capital(bname);//将表名首字母大写,适应命名规范String filenameTemp = path + "\\"+bname+"Po.java";String vostr = "package "+Paurl+";\nimport java.io.Serializable;\n\npublic class "+bname+"Po implements Serializable{ \n\n\tprivate static final long serialVersionUID = 1L;";String toubu = "";String read = "";String write = "";//读取表的每一列 bs = dma.getColumns(null, "%",bname, "%");while(bs.next()){          String columnName = bs.getString("COLUMN_NAME");//列名	         String typeName = bs.getString("TYPE_NAME");//列的数据类型String remarks = bs.getString("REMARKS");//列的备注String ltype = typepd(typeName);//MySQL类型与java类型进行转换//拼接po代码toubu+="\n\t//-- "+remarks+" --\n\tprivate " + ltype+" "+columnName+";";read += "\n\n\tpublic" + " " + ltype + " get" + columnName+ "() {\n\t\treturn " + columnName + ";\n\t}";write += "\n\n\tpublic" + " void " + "set" + columnName + "("+ ltype + " " + columnName + ")" + "{\n\t\tthis." + columnName+ " = " + columnName + ";\n\t}";}vostr+=toubu+read+write+"\n}";//调用封装方法,生成最终po文件File file = new File(filenameTemp);try {if (!file.exists()) {  file.createNewFile();writeFileContent(filenameTemp, vostr);} else {autoReplace(filenameTemp, vostr);} } catch (Exception e) {e.printStackTrace();}System.out.println("✔ "+bname+"表 PO创建成功 :"+filenameTemp);}System.out.println("\n✔ 数据库PO创建完成! ------- SetPo_XT");} catch (Exception  e) {e.printStackTrace();} finally { //关闭流try { if (rs != null) {rs.close();}if (con != null) {con.close();}if (bs != null) {bs.close();}} catch (SQLException e) {e.printStackTrace();}}
}

MySQL数据类型与java数据类型转换

//常用类型,还有很多类型没判断public static String typepd(String sqltype){String jatype="";if(sqltype.equals("INT"){jatype="int";}else if(sqltype.equals("INTEGER")){ jatype="long";}else if(sqltype.equals("FLOAT")){jatype="float";}else if(sqltype.equals("DOUBLE")){jatype="double"; }else if(sqltype.equals("BIT")){jatype="boolean";}else{jatype="String";}return jatype;
}

首字母大写
表名首字母大写,适应java命名规范

 public static String capital(String ostr){String nestr=ostr.toUpperCase();String sd=nestr.substring(0,1);String newstr=sd+ostr.substring(1);return newstr;
}

使用实例

//引入封装好的SetPo_XT包
import com.xt.jdbc.SetPo_XT;
//链接数据库
conn= DriverManager.getConnection(url, user, password);
//调用SetPo_XT的FoundPo()
SetPo_XT.FoundPo(conn, "com.xt.po");

控制器实时输出状态

执行完成后刷新项目目录
PO自动生成成功

这是自动生成的PO代码

更多推荐

JavaWeb自动生成PO文件

本文发布于:2024-03-05 13:55:24,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1712470.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:自动生成   文件   JavaWeb   PO

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!