⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 daocoder.java

📁 一个简单的公文管理系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
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 + -