📄 daocoder.java
字号:
package com.jasson.business.system;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/
import java.sql.*;
import java.util.Properties;
import java.io.*;
import java.sql.*;
public class DaoCoder {
public String pathName="";
public String className="";
public String tableName="";
private ResultSet rs = null;
private Statement stmt = null;
private ResultSetMetaData rsD;
private String XXX="XXX";
private String YYY="Int";
private String ZZZ="int";
public DaoCoder() {
}
public void writeDaoToFile(){
try {
//DbConn dbConn = new DbConn();
//Connection conn = dbConn.getConnection();
String url="jdbc:microsoft:sqlserver://devserver:1433;DatabaseName=AgentFlow";
//String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
String dbDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
Properties props = new Properties();
Class.forName(dbDriver);
props.put("user","sa");
props.put("password","");
Connection conn = DriverManager.getConnection(url, props);
String sql="select * from "+tableName+" where 1<>1";
String fileStreamStr="package com.jasson.business.system;\r\n\r\n";
fileStreamStr+="/**\r\n";
fileStreamStr+=" * <p>Title: "+className+"</p>\r\n";
fileStreamStr+=" * <p>Description: </p>\r\n";
fileStreamStr+=" * <p>Copyright: Copyright (c) 2003,by wingroup</p>\r\n";
fileStreamStr+=" * <p>Company: wingroup</p>\r\n";
fileStreamStr+=" * @author jarrywen\r\n";
fileStreamStr+=" * @version 1.0\r\n";
fileStreamStr+=" */\r\n\r\n";
fileStreamStr+="import java.io.*;\r\n";
fileStreamStr+="import java.sql.*;\r\n";
fileStreamStr+="import java.util.Properties;\r\n";
fileStreamStr+="import java.util.Collection;\r\n";
fileStreamStr+="import java.util.ArrayList;\r\n";
fileStreamStr+="import com.jasson.business.common.DbConn;\r\n\r\n";
fileStreamStr+="import com.jasson.common.*;\r\n\r\n";
fileStreamStr+="public class "+className+" {\r\n";
stmt= conn.createStatement();
rs=stmt.executeQuery(sql);
rsD=rs.getMetaData();
//write properties
String fieldType="String";
for(int i=1;i<rsD.getColumnCount()+1;i++){
fieldType=getFieldType(rsD,i);
fileStreamStr+="\tprivate "+fieldType+" "+rsD.getColumnLabel(i)+";\r\n";
}
for(int i=1;i<rsD.getColumnCount()+1;i++){
XXX = rsD.getColumnLabel(1);
break;
}
//write struct
fileStreamStr+="\tpublic "+className+"( ";
for(int i=1;i<rsD.getColumnCount()+1;i++){
fieldType=getFieldType(rsD,i);
if(i==1)
fileStreamStr+=fieldType+" "+rsD.getColumnLabel(i);
else
fileStreamStr+=", "+fieldType+" "+rsD.getColumnLabel(i);
}
fileStreamStr+=" ){\r\n";
for(int i=1;i<rsD.getColumnCount()+1;i++){
fieldType=getFieldType(rsD,i);
fileStreamStr+="\t\tthis."+rsD.getColumnLabel(i)+" = "+rsD.getColumnLabel(i)+";\r\n";
}
fileStreamStr+="\t}\r\n";
fileStreamStr+="\tpublic "+className+"() {\r\n";
fileStreamStr+="\t}\r\n";
for(int i=1;i<rsD.getColumnCount()+1;i++){
fieldType=getFieldType(rsD,i);
fileStreamStr+="\tpublic "+fieldType+" get"+rsD.getColumnLabel(i)+"(){\r\n";
fileStreamStr+="\t\treturn "+rsD.getColumnLabel(i)+";\r\n";
fileStreamStr+="\t}\r\n";
fileStreamStr+="\tpublic void set"+rsD.getColumnLabel(i)+"("+fieldType+" "+rsD.getColumnLabel(i)+"){\r\n";
fileStreamStr+="\t\tthis."+rsD.getColumnLabel(i)+" = "+rsD.getColumnLabel(i)+";\r\n";
fileStreamStr+="\t}\r\n";
}
//find
fileStreamStr+="\tpublic static "+className+" find("+ZZZ+" "+XXX+"){\r\n";
fileStreamStr+="\t\tExtendString ExStr = new ExtendString();\r\n";
fileStreamStr+="\t\tConnection con = null;\r\n";
fileStreamStr+="\t\tPreparedStatement ps = null;\r\n";
fileStreamStr+="\t\tResultSet rs = null;\r\n";
fileStreamStr+="\t\t"+className+" result = null;\r\n";
fileStreamStr+="\t\ttry {\r\n";
fileStreamStr+="\t\t\tDbConn dbConn = new DbConn();\r\n";
fileStreamStr+="\t\t\tcon = dbConn.getConnection();\r\n";
fileStreamStr+="\t\t\tps = con.prepareStatement(\"select ";
for(int i=1;i<rsD.getColumnCount()+1;i++){
if(i==1)
fileStreamStr+=" "+rsD.getColumnLabel(i);
else
fileStreamStr+=", "+rsD.getColumnLabel(i);
}
fileStreamStr+=" from "+tableName+" where "+XXX+" = ?\");\r\n";
fileStreamStr+="\t\t\tps.set"+YYY+"(1, "+XXX+");\r\n";
fileStreamStr+="\t\t\trs = ps.executeQuery();\r\n";
fileStreamStr+="\t\t\tif (rs.next()) {\r\n";
fileStreamStr+="\t\t\t\tresult = new "+className+"(";
for(int i=1;i<rsD.getColumnCount()+1;i++){
fieldType=getFieldType(rsD,i);
if (fieldType.equals("int")) fieldType="Int";
String sBeforeDecode="";
String sAfterDecode="";
if(fieldType.equals("String")){
sBeforeDecode="ExStr.dbDecode(";
sAfterDecode=")";
}
if(i==1)
fileStreamStr+=" "+sBeforeDecode+"rs.get"+fieldType+"("+i+")"+sAfterDecode+"";
else
fileStreamStr+=", "+sBeforeDecode+"rs.get"+fieldType+"("+i+")"+sAfterDecode+"";
}
fileStreamStr+=");\r\n";
fileStreamStr+="\t\t\t}\r\n";
fileStreamStr=getFileStreamStr(fileStreamStr,1);
fileStreamStr+="\t\treturn result;\r\n";
fileStreamStr+="\t}\r\n";
//findall
fileStreamStr+="\tpublic static "+className+"[] findAll() {\r\n";
fileStreamStr+="\t\tExtendString ExStr = new ExtendString();\r\n";
fileStreamStr+="\t\tConnection con = null;\r\n";
fileStreamStr+="\t\tPreparedStatement ps = null;\r\n";
fileStreamStr+="\t\tResultSet rs = null;\r\n";
fileStreamStr+="\t\t"+className+" result = null;\r\n";
fileStreamStr+="\t\tCollection results = new ArrayList();\r\n";
fileStreamStr+="\t\ttry {\r\n";
fileStreamStr+="\t\t\tDbConn dbConn = new DbConn();\r\n";
fileStreamStr+="\t\t\tcon = dbConn.getConnection();\r\n";
fileStreamStr+="\t\t\tps = con.prepareStatement(\"select ";
for(int i=1;i<rsD.getColumnCount()+1;i++){
if(i==1)
fileStreamStr+=" "+rsD.getColumnLabel(i);
else
fileStreamStr+=", "+rsD.getColumnLabel(i);
}
fileStreamStr+=" from "+tableName+"\");\r\n";
fileStreamStr+="\t\t\trs = ps.executeQuery();\r\n";
fileStreamStr+="\t\t\twhile (rs.next()) {\r\n";
fileStreamStr+="\t\t\t\tresult = new "+className+"(";
for(int i=1;i<rsD.getColumnCount()+1;i++){
fieldType=getFieldType(rsD,i);
if (fieldType.equals("int")) fieldType="Int";
String sBeforeDecode="";
String sAfterDecode="";
if(fieldType.equals("String")){
sBeforeDecode="ExStr.dbDecode(";
sAfterDecode=")";
}
if(i==1)
fileStreamStr+=" "+sBeforeDecode+"rs.get"+fieldType+"("+i+")"+sAfterDecode+"";
else
fileStreamStr+=", "+sBeforeDecode+"rs.get"+fieldType+"("+i+")"+sAfterDecode+"";
}
fileStreamStr+=");\r\n";
fileStreamStr+="\t\t\t\tresults.add(result);\r\n";
fileStreamStr+="\t\t\t}\r\n";
fileStreamStr=getFileStreamStr(fileStreamStr,1);
fileStreamStr+="\t\treturn ("+className+"[])results.toArray(new "+className+"[0]);\r\n";
fileStreamStr+="\t}\r\n";
//insert
fileStreamStr+="\tpublic long insert() {\r\n";
fileStreamStr+="\t\tConnection con = null;\r\n";
fileStreamStr+="\t\tPreparedStatement ps = null;\r\n";
fileStreamStr+="\t\tResultSet rs = null;\r\n";
fileStreamStr+="\t\tlong lngSQLReturn = -1;\r\n";
fileStreamStr+="\t\tlong lngReturn = -1;\r\n";
fileStreamStr+="\t\ttry {\r\n";
fileStreamStr+="\t\t\tDbConn dbConn = new DbConn();\r\n";
fileStreamStr+="\t\t\tcon = dbConn.getConnection();\r\n";
fileStreamStr+="\t\t\tif (con != null) {\r\n";
for(int i=1;i<rsD.getColumnCount()+1;i++){
fileStreamStr+="\t\t\t\tps = con.prepareStatement(\"select MAX("+rsD.getColumnLabel(1)+") from "+tableName+"\");\r\n";
fileStreamStr+="\t\t\t\trs = ps.executeQuery();\r\n";
fileStreamStr+="\t\t\t\tif (rs.next()){\r\n";
fileStreamStr+="\t\t\t\t\tint max"+rsD.getColumnLabel(1)+" = rs.getInt(1);\r\n";
fileStreamStr+="\t\t\t\t\tthis.set"+rsD.getColumnLabel(1)+"(max"+rsD.getColumnLabel(1)+");\r\n";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -