public string GeneratorCode(List <EntityClassInfo> entityClassInfos, string basePath, RichTextBox richTextBox = null) { string codeEntity = CreateCode.CreateEntityClass(entityClassInfos, basePath, richTextBox); return(codeEntity); //throw new NotImplementedException(); }
private void CreateCodeFile(string templatePath, string saveDir) { string codeEntity = CreateCode.CreateEntityClass(entityInfo, templatePath); if (!Directory.Exists(saveDir)) { Directory.CreateDirectory(saveDir); } File.WriteAllText(saveDir + entityInfo.className + ".java", codeEntity); }
private void btnCreate_Click(object sender, EventArgs e) { DbHelper dbHelper = new DbHelper(connString); DataTable dtColumn = new DataTable(); if (lvTabeleName.CheckedItems.Count == 0) { MessageBox.Show("请选择要生成代码的数据表"); return; } lboxInfo.Items.Clear(); lboxInfo.Items.Add("正在初始化相关包名与目录..."); intPackageAndPath(); lboxInfo.Items.Add("初始化完成 OK"); string COLUMN_SQL = @"SELECT Name=a.name, AutoIncrement=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '是'else '否' end, IsPK=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( SELECT name FROM sysindexes WHERE indid in( SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid ))) then '是' else '否' end, DataType=b.name, BitLenght=a.length, MaxLength=COLUMNPROPERTY(a.id,a.name,'PRECISION'), Digits=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0), CanNull=case when a.isnullable=1 then '是'else '否' end, DefaultValue=isnull(e.text,''), Label=isnull(g.[value],'') FROM syscolumns a left join systypes b on a.xusertype=b.xusertype inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties' left join syscomments e on a.cdefault=e.id left join sys.extended_properties g on a.id=g.major_id and a.colid=g.minor_id left join sys.extended_properties f on d.id=f.major_id and f.minor_id=0 where d.name='{0}' order by a.id,a.colorder "; string selTableName = string.Empty; string selTableComm = string.Empty; string tempClassName = string.Empty; string className = string.Empty; //定义要生成的实体中需要排除的列 //主要是业务实体继承了基实体,在业务实体中就不需要再生成这些字段的映射了 string excludes = "CREATE_TIME,CREATE_USER,UPDATE_TIME,UPDATE_USER,VERSION,ISDELETE,ORDER_INDEX,EXT_FIELD01,EXT_FIELD02,EXT_FIELD03,EXT_FIELD04,EXT_FIELD05,NODE_LAYER,NODE_INFO,NODE_TYPE,NODE_INFOTYPE"; try { for (int i = 0; i < lvTabeleName.CheckedItems.Count; i++) { selTableName = lvTabeleName.CheckedItems[i].Tag.ToString(); selTableComm = lvTabeleName.CheckedItems[i].Text.ToString(); lboxInfo.Items.Add("处理数据表" + selTableComm + "的相关信息..."); dtColumn = dbHelper.Fill(string.Format(COLUMN_SQL, selTableName)); EntityClassInfo entityInfo = new EntityClassInfo(); entityInfo.tableName = selTableName; entityInfo.tableComment = selTableComm; tempClassName = ConvertHelper.SplitAndToFirstUpper(selTableName, '_'); className = tempClassName.Substring(0, 1).ToUpper() + tempClassName.Substring(1, tempClassName.Length - 1); entityInfo.className = className; entityInfo.packageName = modelPackageName; entityInfo.daoPackageName = daoPackageName; entityInfo.servicePackageName = servicePackageName; entityInfo.controllerPackageName = controllerPackageName; entityInfo.dataTable = dtColumn; entityInfo.codeLanguage = codeLanguage.Java; entityInfo.excludes = excludes; //entityInfo.JsOneDirName = txtModelOne.Text; //entityInfo.JsTwoDirName = txtJsName.Text; string templatePath = ConfigurationManager.AppSettings["TemplateEntity"].ToString(); entityInfo.createColumnInfo(); //rtboxView.Clear(); //生成实体层代码 //lboxInfo.Items.Add("生成数据表" + selTableComm + "的实体层代码..."); ////lboxInfo.Items.Add("实体目录:" + modelFileDir); //string codeEntity = CreateCode.CreateEntityClass(entityInfo, templatePath); ////rtboxView.AppendText(codeEntity); //if (!Directory.Exists(modelFileDir)) //{ // Directory.CreateDirectory(modelFileDir); //} //File.WriteAllText(modelFileDir + className + ".java", codeEntity); ////生成Dao接口层代码 //lboxInfo.Items.Add("生成数据表" + selTableComm + "的dao接口层代码..."); //string templatePathDao = ConfigurationManager.AppSettings["TemplateDao"].ToString(); //String codeDao = CreateCode.CreateEntityClass(entityInfo, templatePathDao); ////rtboxView.AppendText(codeDao); //if (!Directory.Exists(daoFileDir)) //{ // Directory.CreateDirectory(daoFileDir); //} //File.WriteAllText(daoFileDir + className + "Dao.java", codeDao); ////生成Dao接口实现层代码 //lboxInfo.Items.Add("生成数据表" + selTableComm + "的dao接口实现层代码..."); //string TemplateDaoImpl = ConfigurationManager.AppSettings["TemplateDaoImpl"].ToString(); //String codeDaoImpl = CreateCode.CreateEntityClass(entityInfo, TemplateDaoImpl); ////rtboxView.AppendText(codeDaoImpl); //String daoImplFileDir = daoFileDir + @"\Impl\"; //if (!Directory.Exists(daoImplFileDir)) //{ // Directory.CreateDirectory(daoImplFileDir); //} //File.WriteAllText(daoImplFileDir + className + "DaoImpl.java", codeDaoImpl); ////生成Service接口层代码 //lboxInfo.Items.Add("生成数据表" + selTableComm + "的service接口层代码..."); //String TemplateService = ConfigurationManager.AppSettings["TemplateService"].ToString(); //String codeService = CreateCode.CreateEntityClass(entityInfo, TemplateService); ////rtboxView.AppendText(codeService); //if (!Directory.Exists(serviceFileDir)) //{ // Directory.CreateDirectory(serviceFileDir); //} //File.WriteAllText(serviceFileDir + className + "Service.java", codeService); ////生成Service接口实现层代码 //lboxInfo.Items.Add("生成数据表" + selTableComm + "的service接口实现层代码..."); //String TemplateServiceImpl = ConfigurationManager.AppSettings["TemplateServiceImpl"].ToString(); //String codeServiceImpl = CreateCode.CreateEntityClass(entityInfo, TemplateServiceImpl); //String serviceImplFileDir = serviceFileDir + @"\Impl\"; ////rtboxView.AppendText(codeServiceImpl); //if (!Directory.Exists(serviceImplFileDir)) //{ // Directory.CreateDirectory(serviceImplFileDir); //} //File.WriteAllText(serviceImplFileDir + className + "ServiceImpl.java", codeServiceImpl); ////生成Controller接口实现层代码 //lboxInfo.Items.Add("生成数据表" + selTableComm + "的controller层代码..."); //String TemplateController = ConfigurationManager.AppSettings["TemplateController"].ToString(); //String codeController = CreateCode.CreateEntityClass(entityInfo, TemplateController); ////String controller = serviceFileDir + @"\Impl\"; ////rtboxView.AppendText(codeServiceImpl); //if (!Directory.Exists(controllerFileDir)) //{ // Directory.CreateDirectory(controllerFileDir); //} //File.WriteAllText(controllerFileDir + className + "Controller.java", codeController); //生成前端JSController接口实现层代码 lboxInfo.Items.Add("生成数据表" + selTableComm + "的前端controller层代码..."); String JsTemplateController = ConfigurationManager.AppSettings["TemplateJsController"].ToString(); String JsController = CreateCode.CreateEntityClass(entityInfo, JsTemplateController); //String controller = serviceFileDir + @"\Impl\"; //rtboxView.AppendText(codeServiceImpl); if (!Directory.Exists(jsControllerFileDir)) { Directory.CreateDirectory(jsControllerFileDir); } File.WriteAllText(jsControllerFileDir + "MainController.js", JsController); //生成前端TemplateJsViewMain接口实现层代码 lboxInfo.Items.Add("生成数据表" + selTableComm + "的前端controller层代码..."); String TemplateJsViewMain = ConfigurationManager.AppSettings["TemplateJsViewMain"].ToString(); String codeTemplateJsViewMain = CreateCode.CreateEntityClass(entityInfo, TemplateJsViewMain); //String controller = serviceFileDir + @"\Impl\"; //rtboxView.AppendText(codeServiceImpl); if (!Directory.Exists(jsViewFileDir)) { Directory.CreateDirectory(jsViewFileDir); } File.WriteAllText(jsViewFileDir + "mainLayout.js", codeTemplateJsViewMain); //生成前端TemplateJsViewMain接口实现层代码 lboxInfo.Items.Add("生成数据表" + selTableComm + "的前端controller层代码..."); String TemplateJsViewGrid = ConfigurationManager.AppSettings["TemplateJsViewGrid"].ToString(); String codeTemplateJsViewGrid = CreateCode.CreateEntityClass(entityInfo, TemplateJsViewGrid); //String controller = serviceFileDir + @"\Impl\"; //rtboxView.AppendText(codeServiceImpl); if (!Directory.Exists(jsViewFileDir)) { Directory.CreateDirectory(jsViewFileDir); } File.WriteAllText(jsViewFileDir + "listGrid.js", codeTemplateJsViewGrid); //生成前端TemplateJsViewMain接口实现层代码 lboxInfo.Items.Add("生成数据表" + selTableComm + "的前端controller层代码..."); String TemplateJsViewDetail = ConfigurationManager.AppSettings["TemplateJsViewDetail"].ToString(); String codeTemplateJsViewDetail = CreateCode.CreateEntityClass(entityInfo, TemplateJsViewDetail); //String controller = serviceFileDir + @"\Impl\"; //rtboxView.AppendText(codeServiceImpl); if (!Directory.Exists(jsViewFileDir)) { Directory.CreateDirectory(jsViewFileDir); } File.WriteAllText(jsViewFileDir + "detailLayout.js", codeTemplateJsViewDetail); //生成前端TemplateJsViewMain接口实现层代码 lboxInfo.Items.Add("生成数据表" + selTableComm + "的前端controller层代码..."); String TemplateJsViewform = ConfigurationManager.AppSettings["TemplateJsViewform"].ToString(); String codeTemplateJsViewform = CreateCode.CreateEntityClass(entityInfo, TemplateJsViewform); //String controller = serviceFileDir + @"\Impl\"; //rtboxView.AppendText(codeServiceImpl); if (!Directory.Exists(jsViewFileDir)) { Directory.CreateDirectory(jsViewFileDir); } File.WriteAllText(jsViewFileDir + "detailForm.js", codeTemplateJsViewform); } lboxInfo.Items.Add("全部所选数据表的代码生成完毕!"); } catch (Exception ex) { MessageBox.Show("读取数据库失败!" + ex.Message); return; } }