Ejemplo n.º 1
0
        //根据内容获取表名称及表的中文名称
        private TableDescript getTableNameAndChinese(string content, bool?isPascal)
        {
            TableDescript tableDescript = new TableDescript();

            //获取表名称相关
            Match  match     = Regex.Match(content, @"CREATE TABLE `(\w+?)`", RegexOptions.ECMAScript);
            string tableName = match.Groups[1].Value;

            tableDescript.tableName      = tableName;
            tableDescript.tableNameUpper = (bool)isPascal ? Utils.ToHump(tableName) : Utils.ToFirstUpper(tableName);

            Match match1 = Regex.Match(content, @"CHARSET=utf8 COMMENT='([^\x00-\xff]+?)';", RegexOptions.ECMAScript);

            tableDescript.tableNameChinese = match1.Groups[1].Value;


            //获取主键
            Match  matchPrimaryKey = Regex.Match(content, @"PRIMARY KEY \(`(\w+?)`\)", RegexOptions.ECMAScript);
            string tablePrimaryKey = matchPrimaryKey.Groups[1].Value;

            tableDescript.tablePrimaryKey      = tablePrimaryKey;
            tableDescript.tablePrimaryKeyUpper = (bool)isPascal ? Utils.ToHump(tablePrimaryKey) : Utils.ToFirstUpper(tablePrimaryKey);

            return(tableDescript);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获取表的基本信息
        /// </summary>
        /// <param name="content"></param>
        private TableDescript getTablesDescript(string content, bool?isPascal)
        {
            //获取表名称
            TableDescript tableDescript = getTableNameAndChinese(content, isPascal);

            //获取表格字段名称
            tableDescript = getTableField(tableDescript, content, (bool)isPascal);

            return(tableDescript);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 获取表格字段信息
        /// </summary>
        /// <param name="tableDescript"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        private TableDescript getTableField(TableDescript tableDescript, string content, Boolean isPascal)
        {
            List <TableField> list        = new List <TableField>();
            MatchCollection   matchesNull = Regex.Matches(content, @"`(\w+?)` (.+?) DEFAULT NULL COMMENT '(.+?)',", RegexOptions.ECMAScript);

            foreach (Match item in matchesNull)
            {
                TableField table = new TableField(isPascal);
                table.Name     = item.Groups[1].Value;
                table.Type     = item.Groups[2].Value;
                table.Descript = item.Groups[3].Value;
                list.Add(table);
            }

            tableDescript.tableFields = list;
            return(tableDescript);
        }
Ejemplo n.º 4
0
        //CREATE TABLE `bank_info` (
        //  `bank_oid` varchar(42) NOT NULL COMMENT '附件id',
        //  `owner_oid` varchar(42) DEFAULT NULL COMMENT '业主id',
        //  `owner_name` varchar(200) DEFAULT NULL COMMENT '业主姓名',
        //  `bank_user` varchar(200) DEFAULT NULL COMMENT '收款户名',
        //  `bank_card` varchar(19) DEFAULT NULL COMMENT '银行卡号',
        //  `bank_name` varchar(200) DEFAULT NULL COMMENT '所属银行名称',
        //  `bank_pay_name` varchar(200) DEFAULT NULL COMMENT '收款银行名称',
        //  `update_employee` varchar(42) DEFAULT NULL COMMENT '更新人id',
        //  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
        //  `customer_code` varchar(200) DEFAULT NULL COMMENT '公共客商编号',
        //  `is_delete` int (11) DEFAULT NULL COMMENT '是否停用',
        //  PRIMARY KEY(`bank_oid`)
        //) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT = '银行信息表';


        private void Button_Click(object sender, RoutedEventArgs e)
        {
            string folder = labelFolder.Content.ToString();

            if (String.IsNullOrEmpty(folder))
            {
                System.Windows.MessageBox.Show("请先选择路径");
                return;
            }
            int index = comTemplate.SelectedIndex;

            bool?  isPascal = checkPascal.IsChecked;
            string content  = txtContent.Text;

            TableDescript tableDescript = getTablesDescript(content, isPascal);


            if (index < 0)
            {
                System.Windows.MessageBox.Show("请选择生成模版");
                return;
            }
            if (index == 0)
            {
                generateCrud(folder, tableDescript.tableName, tableDescript.tableNameUpper, tableDescript.tableNameChinese, tableDescript.tableFields, tableDescript.tablePrimaryKey);
            }
            else if (index == 1)
            {
                generateEmpty(folder, tableDescript.tableName, tableDescript.tableNameUpper, tableDescript.tableNameChinese, tableDescript.tableFields, tableDescript.tablePrimaryKey);
            }
            else if (index == 2)
            {
                generateNoPascalCrudV2(folder, tableDescript.tableName, tableDescript.tableNameUpper, tableDescript.tableNameChinese, tableDescript.tableFields, tableDescript.tablePrimaryKey, "crudv2");
            }
            else if (index == 3)
            {
                generateNoPascalCrudV2(folder, tableDescript.tableName, tableDescript.tableNameUpper, tableDescript.tableNameChinese, tableDescript.tableFields, tableDescript.tablePrimaryKey, "crudv2");
            }
            else if (index == 4)
            {
                generateNoPascalCrudV2(folder, tableDescript.tableName, tableDescript.tableNameUpper, tableDescript.tableNameChinese, tableDescript.tableFields, tableDescript.tablePrimaryKey, "treecrud");
            }

            System.Windows.MessageBox.Show("生成成功");
        }