Exemplo n.º 1
0
        private bool CreateCode()
        {
            if (txtNameSpace.Text.Trim() == "")
            {
                MessageBox.Show("请输入命名空间或包名"); return(false);
            }
            if (txtClassName.Text.Trim() == "")
            {
                MessageBox.Show("请输入类名"); return(false);
            }
            String         strNameSpace   = txtNameSpace.Text.Trim();
            String         strClassName   = txtClassName.Text.Trim();
            DatabaseConfig dbConfig       = (DatabaseConfig)comboBox_Database.SelectedItem;
            DataRowView    dr             = (DataRowView)listBox_Tables.SelectedItem;
            String         strDBTableName = dr["name"].ToString();
            DataTable      dtZeroTable    = new DBHelper().GetZeroTable(dbConfig, strDBTableName);
            DataTable      dtColumns      = myDBHelper.GetTableColumns(dbConfig, strDBTableName);


            #region 生成C#代码
            StringBuilder b = new StringBuilder();
            b.Append("using System;");
            b.Append("\r\n" + "using System.Collections.Generic;");
            b.Append("\r\n" + "using System.Linq;");
            b.Append("\r\n" + "using System.Text;");
            b.Append("\r\n" + "using System.Threading.Tasks;");
            b.Append("\r\n" + "namespace " + strNameSpace);
            b.Append("\r\n" + "{");
            b.Append("\r\n" + "    public class " + strClassName + " : Entity<" + strClassName + ">");
            b.Append("\r\n" + "    {");
            b.Append("\r\n" + "        /// <summary>");
            b.Append("\r\n" + "        /// " + txtTableComment.Text.Trim().Replace("\r\n", "\r\n        /// "));
            b.Append("\r\n" + "        /// </summary>");
            b.Append("\r\n" + "        public " + strClassName + "()");
            b.Append("\r\n" + "        {");
            b.Append("\r\n" + "            this._DBTableName = \"" + strDBTableName + "\";");
            if (comboBox_PrimaryKeyType.Text == "自增")
            {
                //b.Append("\r\n" + "            this._PrimaryKeyType = Database.PrimaryKeyType.AutoIncrease;");
            }
            else
            {
                b.Append("\r\n" + "            this._PrimaryKeyType = Database.PrimaryKeyType.GUID;");
            }
            b.Append("\r\n" + "            this._PrimaryKey = \"" + comboBox_PrimaryKey.Text + "\";");
            b.Append("\r\n" + "        }");
            for (int i = 0; i < dtZeroTable.Columns.Count; i++)
            {
                String comment = "";
                for (int j = 0; j < dtColumns.Rows.Count; j++)
                {
                    if (dtColumns.Rows[j]["ColName"].ToString().ToLower() == dtZeroTable.Columns[i].ColumnName.ToLower())
                    {
                        comment = dtColumns.Rows[j]["Comment"].ToString();
                        break;
                    }
                }
                b.Append("\r\n");
                b.Append("\r\n" + "        /// <summary>");
                b.Append("\r\n" + "        /// " + comment.Replace("\r\n", "\r\n        /// "));
                b.Append("\r\n" + "        /// </summary>");
                if (dtZeroTable.Columns[i].DataType.ToString().ToLower() == "System.String".ToLower())
                {
                    b.Append("\r\n" + "        public " + dtZeroTable.Columns[i].DataType.ToString() + " " + this.GetNetColumnName(dtZeroTable.Columns[i].ColumnName) + " { get; set; }");
                }
                else
                {
                    b.Append("\r\n" + "        public " + dtZeroTable.Columns[i].DataType.ToString() + "? " + this.GetNetColumnName(dtZeroTable.Columns[i].ColumnName) + " { get; set; }");
                }
            }
            b.Append("\r\n" + "    }");
            b.Append("\r\n" + "}");
            txtCodeCSharp.Text = b.ToString();
            #endregion

            #region 生成JAVA代码
            b = new StringBuilder();
            b.Append("package " + strNameSpace + ";\r\n");
            b.Append("import java.io.Serializable;\r\n");
            b.Append("import java.util.Date;\r\n");

            b.Append("import javax.persistence.GenerationType;\r\n");
            b.Append("import javax.persistence.Column;\r\n");
            b.Append("import javax.persistence.Entity;\r\n");
            b.Append("import javax.persistence.GeneratedValue;\r\n");
            b.Append("import javax.persistence.Id;\r\n");
            b.Append("import javax.persistence.Table;\r\n");
            b.Append("import org.apache.commons.lang.builder.ToStringBuilder;\r\n");
            b.Append("import org.hibernate.annotations.GenericGenerator;\r\n");
            b.Append("\r\n");
            b.Append("/**\r\n");
            b.Append(" * " + txtTableComment.Text.Trim().Replace("\r\n", "\r\n      *") + "\r\n");
            b.Append(" */\r\n");
            b.Append("@Entity\r\n");
            b.Append("@Table(name = \"" + strDBTableName + "\")\r\n");
            b.Append("public class " + OnlyUpperFirst(getJavaColumnName(strClassName)) + " implements Serializable {\r\n");
            b.Append("     private static final long serialVersionUID = 1L;\r\n");
            if (comboBox_PrimaryKeyType.Text == "自增")
            {
                b.Append("     @Id\r\n");
                b.Append("     @GeneratedValue(strategy = GenerationType.IDENTITY)\r\n");
                b.Append("     private Long " + comboBox_PrimaryKey.Text + ";\r\n");


                b.Append("     public Long get" + OnlyUpperFirst(comboBox_PrimaryKey.Text) + "() {\r\n");
                b.Append("         return " + comboBox_PrimaryKey.Text + ";\r\n");
                b.Append("     }\r\n");
                b.Append("     public void set" + OnlyUpperFirst(comboBox_PrimaryKey.Text) + "(Long " + comboBox_PrimaryKey.Text + ") {\r\n");
                b.Append("         this." + comboBox_PrimaryKey.Text + " = " + comboBox_PrimaryKey.Text + ";\r\n");
                b.Append("     }\r\n");
            }
            else
            {
                b.Append("     @Id\r\n");
                b.Append("     @GenericGenerator(name = \"systemUUID\", strategy = \"uuid\")\r\n");
                b.Append("     @GeneratedValue(generator = \"systemUUID\")\r\n");
                b.Append("     @Column(name = \"" + comboBox_PrimaryKey.Text + "\", unique = true, nullable = false)\r\n");
                b.Append("     private String " + comboBox_PrimaryKey.Text + ";\r\n");

                b.Append("     public String get" + OnlyUpperFirst(comboBox_PrimaryKey.Text) + "() {\r\n");
                b.Append("         return " + comboBox_PrimaryKey.Text + ";\r\n");
                b.Append("     }\r\n");
                b.Append("     public void set" + OnlyUpperFirst(comboBox_PrimaryKey.Text) + "(String " + comboBox_PrimaryKey.Text + ") {\r\n");
                b.Append("         this." + comboBox_PrimaryKey.Text + " = " + comboBox_PrimaryKey.Text + ";\r\n");
                b.Append("     }\r\n");
            }
            for (int i = 0; i < dtZeroTable.Columns.Count; i++)
            {
                if (dtZeroTable.Columns[i].ColumnName == comboBox_PrimaryKey.Text)
                {
                    continue;
                }
                String comment = "";
                for (int j = 0; j < dtColumns.Rows.Count; j++)
                {
                    if (dtColumns.Rows[j]["ColName"].ToString().ToLower() == dtZeroTable.Columns[i].ColumnName.ToLower())
                    {
                        comment = dtColumns.Rows[j]["Comment"].ToString();
                        break;
                    }
                }

                b.Append("     @Column(name = \"" + dtZeroTable.Columns[i].ColumnName + "\")\r\n");
                string colType = getJavaColumnType(dtZeroTable.Columns[i].DataType.ToString());
                string colName = getJavaColumnName(dtZeroTable.Columns[i].ColumnName);
                b.Append("     private " + colType + " " + colName + ";\r\n");

                b.Append("     /**\r\n");
                b.Append("      *" + comment.Replace("\r\n", "\r\n      *") + "\r\n");
                b.Append("      */\r\n");
                b.Append("     public " + colType + " get" + OnlyUpperFirst(colName) + "() {\r\n");
                b.Append("         return " + colName + ";\r\n");
                b.Append("     }\r\n");


                b.Append("     /**\r\n");
                b.Append("      *" + comment.Replace("\r\n", "\r\n      *") + "\r\n");
                b.Append("      */\r\n");
                b.Append("     public void set" + OnlyUpperFirst(colName) + "(" + colType + " " + colName + ") {\r\n");
                b.Append("         this." + colName + " = " + colName + ";\r\n");
                b.Append("     }\r\n");
            }

            b.Append("     public " + OnlyUpperFirst(getJavaColumnName(strClassName)) + "(){}");
            b.Append("}\r\n");
            txtCodeJava.Text = b.ToString();
            #endregion



            #region 生成Mybatis代码
            b = new StringBuilder();
            b.Append("package " + strNameSpace + ";\r\n");
            b.Append("import java.util.Date;\r\n");
            b.Append("\r\n");
            b.Append("/**\r\n");
            b.Append(" * " + txtTableComment.Text.Trim().Replace("\r\n", "\r\n      *") + "\r\n");
            b.Append(" */\r\n");

            b.Append("public class " + OnlyUpperFirst(getJavaColumnName(strClassName)) + " {\r\n");

            for (int i = 0; i < dtZeroTable.Columns.Count; i++)
            {
                //if (dtZeroTable.Columns[i].ColumnName == comboBox_PrimaryKey.Text) { continue; }
                String comment = "";
                for (int j = 0; j < dtColumns.Rows.Count; j++)
                {
                    if (dtColumns.Rows[j]["ColName"].ToString().ToLower() == dtZeroTable.Columns[i].ColumnName.ToLower())
                    {
                        comment = dtColumns.Rows[j]["Comment"].ToString();
                        break;
                    }
                }

                //b.Append("     @Column(name = \"" + dtZeroTable.Columns[i].ColumnName + "\")\r\n");
                string colType = getJavaColumnType(dtZeroTable.Columns[i].DataType.ToString());
                string colName = getJavaColumnName(dtZeroTable.Columns[i].ColumnName);
                b.Append("     private " + colType + " " + colName + ";\r\n");

                b.Append("     /**\r\n");
                b.Append("      *" + comment.Replace("\r\n", "\r\n      *") + "\r\n");
                b.Append("      */\r\n");
                b.Append("     public " + colType + " get" + OnlyUpperFirst(colName) + "() {\r\n");
                b.Append("         return " + colName + ";\r\n");
                b.Append("     }\r\n");


                b.Append("     /**\r\n");
                b.Append("      *" + comment.Replace("\r\n", "\r\n      *") + "\r\n");
                b.Append("      */\r\n");
                b.Append("     public void set" + OnlyUpperFirst(colName) + "(" + colType + " " + colName + ") {\r\n");
                b.Append("         this." + colName + " = " + colName + ";\r\n");
                b.Append("     }\r\n");
            }

            b.Append("     public " + OnlyUpperFirst(getJavaColumnName(strClassName)) + "(){}");
            b.Append("}\r\n");
            txtCodeMybatis.Text = b.ToString();
            #endregion
            return(true);
        }
Exemplo n.º 2
0
 public FormDBConfig(FormMain formMain, DatabaseConfig dbConfig)
 {
     FormMain = formMain;
     DBConfig = dbConfig;
     InitializeComponent();
 }