之前一直使用动软的代码自动生成工具,无奈现在连接数据库时Test Connect 能成功,连接却失败,只能另觅工具了,搜索一翻发现了 CodeSmith,据说一个很好用的工具,因为是个付费版本。

最新版本:8.0,官网下载需注册。

网上版本下载地址含注册机:http://www.drv5.cn/sfinfo/15948.html

1、安装及注册参考:

7.0版本的安装及注册:https://www.cnblogs.com/dunitian/p/4096917.html

8.0版本的安装及注册:https://blog.csdn.net/qq_31384551/article/details/80238656

值得注意的是:注册 7.0的版本 Prefix: 是 CS70P-  ; 8.0则是CS80P-

2、连接MySql数据库:

打开数据库列表:

添加数据库:

值得注意的是连接字符串:Server=127.0.0.1;User Id=root;Password=pwd;Database=DbName;  可能成功连接并读取到表;

使用此形式:Data Source=127.0.0.1;port=3306;Initial Catalog=DbName;user id=root;password=pwd; 能成功连接但是读取表列表失败

3、生成实体类代码

新建Entity.cst模板文件,代码参考自网络(不记得哪里抄的了)

/*

*本代码由代码生成器自动生成,请不要更改此文件的任何代码。

*生成时间:

*生成者:

*/

using System;

namespace

{

///

///表的实体类

///

public class

{

///

///

///

public

{

get;set;

}

}

}

//得到类的名字(由表名而来)

public string GetClassName()

{

string s=this.SourceTable.Name;//取到表名

//s=s.Replace("st_","");

//判断表名是不是以S结尾,如果是去掉S

if (s.EndsWith("s"))

{

s=s.Substring(0,s.Length-1);

}

return StringUtil.ToPascalCase(s)+"Entity";

}

如下图:

模板中定义的属性在右下角中对应显示与编辑

选择生成的表后,点击Generate按钮即可生成对应表的实体类

4、批量生成

有别于动软的生成工具,界面选择批量生成即可,而是需要编写代码批量生成,这也有一个好处很方便定制。

新建另一模板: Tables.cst

foreach (TableSchema table in this.SourceDB.Tables)

{

Entity mtc=new Entity();

mtc.SourceTable=table;

mtc.RenderToFile("C:\\Projects\\Documents\\"+GetClassName(table)+".cs",true);

}

%>

//得到类的名字(由表名而来)

public string GetClassName(SchemaExplorer.TableSchema table)

{

string s=table.Name;//取到表名

s=s.Replace("st_","");

//判断表名是不是以S结尾,如果是去掉S

if (s.EndsWith("s"))

{

s=s.Substring(0,s.Length-1);

}

return StringUtil.ToPascalCase(s)+"Entity";

}

通过注模板以关联批量生成的内容。

同理选取数据库,点击Generate按钮后,对应的代码将生成到对应目录

5、给生成的实体类属性添加注释(MySql)

对于MySql对应的实体类,并没期望出现注释说明,如下图

原因及解决方法,参考:

https://blog.csdn.net/nihaoapengyou/article/details/52587986

网上也有对应的Dll提供,但对8.0无效,但我是我没找到。可能是因为7.0版本软件没有对Dll进行强签名,而8.0开始做了。

怎么办?思路还是跟参考的一样。反编译,修改原码,再重新编译成dll 再替换。但可能是因为做了强签名的原因,替换后程序出错了。所以可能现存网上的Dll也是因为签名的问题出错。

签名,我不大熟悉,只能再次借助工具了:.NET Reflector 和 Reflexil

下载 Reflexil 的Relector版 插件:https://www.softpedia.com/get/Programming/Components-Libraries/Reflexil.shtml

在.NET Reflector 中添加插件

工具栏-->Tools-->Add-Ins

引入解压出来的 Reflexil.Reflector.dll 后,Tools 菜单下面即会出来Reflexil 插件工具

接下来用Reflector 打开Dll

打到需要修改的地方:

然后点击:Tools--->Reflexil 工具

将出现Reflexi工具栏:

又由于我IL语言不怎得,所以决定使用Extra 字段来替换

右键修改查询SQL:

将 EXTRA 修改为 COLUMN_COMMENT

再次修改赋值部份:

将 CS_ColumnExtra  修改为 CS_Description

至此修改完毕,保存DLL

如果你也出现了以下意外:

就去把.NET SDK下的 sn.exe。一般可以在这里找到(C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools) 拷贝到 插件的目录下:

再次保存:

点击 Register it for.. 按钮,保存Dll 。

然后再使用该DLL 覆盖 CodeSmith 的

完成!!!

再次使用CodeSmith 批量生成,注释出来了。

codesmith mysql 注释_代码生成工具:CodeSmith 安装、改造适配Mysql 字段注释、DLL修改 及批量生成实体类代码...相关推荐

  1. mac mysql使用_在Mac中安装和使用MySQL

    下载安装MySQL 在官网下载MySQL 进入官网后可以看到有多个版本可选: Oracle MySQL Cloud Service 基于企业版数据库的云服务 MySQL Enterprise Edit ...

  2. 什么? 你还没用过 Cursor? 智能 AI 代码生成工具 Cursor 安装和使用介绍

    作者:明明如月学长, CSDN 博客专家,蚂蚁集团高级 Java 工程师,<性能优化方法论>作者.<解锁大厂思维:剖析<阿里巴巴Java开发手册>>.<再学经 ...

  3. eclipse mysql生成实体类_Eclipse实现数据库反向生成实体类(pojo)-------(插件安装和实现步骤的说明)...

    一.插件安装 1.下载插件: http://jaist.dl.sourceforge.net/sourceforge/jboss/HibernateTools-3.2.4.Beta1-R2008103 ...

  4. CodeSmith模板(生成实体类)

    CodeSmith是一款与数据库相关的工具,只要与数据库相关的类都可以通过它编写模板来批量实现. <%@ Template Language="C#" TargetLangu ...

  5. windows 7下如何卸载重装mysql 压缩包版百度经验_windows下安装、卸载mysql服务的方法(mysql 5.6 zip解压...

    MySQL是一个小巧玲珑但功能强大的数据库,目前十分流行.但是官网给出的安装包有两种格式,一个是msi格式,一个是zip格式的.很多人下了zip格式的解压发现没有setup.exe,面对一堆文件一头雾 ...

  6. java生成实体类的工具内部是如何实现的(mysql)

    一.认识INFORMATION_SCHEMA数据库 INFORMATION_SCHEMA数据库提供了访问数据库元数据(数据的数据)的方式 该数据库中存放有数据库名.表名,列名.列的数据类型等各种数据 ...

  7. Idea groovy表生成实体类带注释

    Idea groovy表生成实体类带注释 1.点开datasourse,打开idea带的数据库工具,具体添加数据库连接,这里不描述. 这时点击会生成一个poji 这时生成的pojo中是不带中文注释的, ...

  8. idea数据库反向生成实体类_IntelliJ IDEA 的数据库管理工具实在太方便了

    1. 前言 对于一个有软件洁癖的人,能用现有的软件解决问题的绝不安装新的软件.Java后端开发主要跟数据库打交道,所以数据库图形化界面(GUI)是少不了的. 通常图形化操作关系型数据库(RMDBS)大 ...

  9. dao和mysql映射_hibernate通过数据库生成实体类,映射文件和DAO(实用)

    hibernate通过数据库生成实体类,映射文件和DAO(实用) (2011-04-06 17:22:32) 标签: 杂谈 上次谈到利用MyEclipse从数据库反向生成实体类之JPA方式,这次我们来 ...

  10. IDEA中连接MySQL数据库并逆向生成实体类

    IDEA中连接MySQL数据库并逆向生成实体类 首先在MySQL中创建数据库表,1个表,多个表都可以 打开IDEA 创建SpringBoot项目并新建MVC三层架构的文件夹,也可以不建,生成实体类可以 ...

最新文章

  1. Android自定义ScrollView
  2. c语言变量作用域生命周期,C/C++——C++变量的作用域与生命周期,C语言中变量的作用域和生命周期...
  3. 家庭厨房,如何共享美食?|回家吃饭产品分析
  4. LeetCode-206 反转链表
  5. SAP UI渲染模式:客户端渲染 VS 服务器端渲染
  6. 用Itextsharp 组件导出PDF 的文档的方法
  7. flutter 弹框 dialog,flutter提示框
  8. PHP中0、空、null和false的总结
  9. 大前端算法入门之二分查找
  10. Exchange2007获取OWA邮箱容量的代码
  11. (ZT)算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification)
  12. snb处理器hd3000显卡专用extra_最强i9-9900K处理器造就最强主机!华硕ROG GL12CX评测...
  13. 索尼sw2刷android wear,索尼SW2改进不错 体验很舒适_索尼 SmartWatch SW2_GPS评测-中关村在线...
  14. 震撼,java面试题整合(良心制作)11万多字拿去。持续更新【可以收藏】
  15. Golang IDE总汇
  16. 股票市场中有哪些是一般散户想不到但实际却很重要的知识?
  17. Direct3d 设备丢失 (device lost)
  18. ELv2是一种什么样的存在?StarRocks为何惹众怒?
  19. Demo_塔防(自动生成怪物,导航,炮塔攻击,怪物掉血死忙)
  20. DoModal()函数

热门文章

  1. web前端emoji表情
  2. linux命令键盘快捷键,如何将Linux命令设置成键盘快捷键
  3. 【人脸识别】arcface-pytorch代码解析
  4. 什么是VXLAN?VXLAN技术细节及应用案例
  5. java traingdx函数实现_提取伪彩色图像的信息
  6. 2022-2027年中国电容器行业市场全景评估及发展战略规划报告
  7. 数学作图 网站 测试网站
  8. 各个音阶的频率_各音源的频率范围表
  9. 2021-10-18 构建电影数据库MovieDB(数据库第一次实验)
  10. codecombat极客战记森林61-70通关代码