自定义tt文本模板实现MySql指数据库中生成实体类

1.在项目中依次点击“添加”/“新建项”,选择“文本模板”,输入名称后点击添加。

2.在Base.tt中添加如下代码。

<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ output extension=".cs" #>
<#@ Assembly Name="System.Core" #>
<#@ Assembly Name="System.Windows.Forms" #>
<#@ Assembly Name="MySql.Data.dll" #>
<#@ Assembly Name="System.Data" #>
<#@ Assembly Name="System" #>
<#@ import namespace="System" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Diagnostics" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Collections" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="MySql.Data" #>
<#@ import namespace="MySql.Data.MySqlClient" #>//数据库基本信息设置
<# string Server="localhost";string UId="root";string PWd="fxy19940923..";string Db_Name="cxkdb";
#>
//获取数据库中各表基本数据
<#string conStr="server="+Server+";database="+Db_Name+";uid="+UId+";pwd="+PWd;MySqlConnection con=new MySqlConnection(conStr);con.Open();MySqlParameter mp=new MySqlParameter("@db_name",Db_Name);string sqlStr="select * from information_schema.COLUMNS where table_schema=@db_name ";MySqlCommand cmd=new MySqlCommand(sqlStr,con);cmd.Parameters.Add(mp);MySqlDataReader dr = cmd.ExecuteReader();var TableList=new List<string>();var DetailList=new List<Tuple<string,string,string>>();var TableName="";while(dr.Read()){var Table=dr["TABLE_NAME"].ToString();if(TableName==Table){var Column=dr["COLUMN_NAME"].ToString();var DataTypeOld=dr["DATA_TYPE"].ToString();var DataType=DataTypeOld=="varchar"?"string":(DataTypeOld=="int"?"int":(DataTypeOld=="datetime"?"DateTime":(DataTypeOld=="decimal"?"decimal":(DataTypeOld=="char"?"string":(DataTypeOld=="bit"?"Boolean":"string")))));DetailList.Add(Tuple.Create(Table,DataType,Column));}else{TableList.Add(Table);}TableName=Table;}
#>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

3.利用1中的方法新建DataBaseEntity.tt文本模板,并添加如下代码。

<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ output extension=".cs" #>
<#@  include file="Base.tt" #>namespace DataBaseEntity
{
<# foreach(var item in TableList) { #>public class <#= item #>{<# foreach(var detail in DetailList) {if( item == detail.Item1 ) { #> public <#=detail.Item2#> <#=detail.Item3#> { get; set; }
<#}}#>    }
<# } #>}

4.将数据库的基本信息填写在Base.tt文件中,即“数据库基本设置”部分,然后依次保存Base.tt、DataBaseEntity.tt,在DataBase.tt目录下会生成对应的实体类。

自定义tt文本模板实现MySql指数据库中生成实体类相关推荐

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

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

  2. 使用IDEA插件从数据库表生成实体类

    目录 1.介绍 2.添加插件 ​ 3.创建数据库连接 4.添加数据库连接信息和驱动 5.表生成实体类 1.介绍 EasyCode是基于IntelliJ IDEA Ultimate版开发的一个代码生成插 ...

  3. Eclipse实现hibernate反向工程:从数据库逆向生成实体类和hbm文件

    转载请注明原文出处:http://blog.csdn.net/baidu_37107022/article/details/75205795 一.hibernate插件安装(已经安装的可以略过) 通过 ...

  4. J2EE进阶(十五)MyEclipse反向工程实现从数据库反向生成实体类之Hibernate方式[申明:来源于网络]...

    J2EE进阶(十五)MyEclipse反向工程实现从数据库反向生成实体类之Hibernate方式[申明:来源于网络] 地址:http://blog.csdn.net/sunhuaqiang1/arti ...

  5. IDEA中根据数据库自动生成实体类,并自定义所生成的实体类中的注解 @Table @Id @...

    使用IDEA项目添加Hibernate扩展,生成实体类并配置实体类中的注解 一.使用Hibernate自动生成实体类 1.在项目上右键,选择Add Framework Support找到 Hibern ...

  6. MyEclipse从数据库反向生成实体类通过Hibernate的方式----mysql数据库实例

    1.我们通过DB与数据库建立连接 2.建立web工程,构建Hibernate框架 3.通过table生成实体类 转载于:https://www.cnblogs.com/huiyuantang/p/54 ...

  7. MyEclipse从数据库反向生成实体类之Hibernate方式 反向工程

    2019独角兽企业重金招聘Python工程师标准>>> 开发项目涉及到的表太多,一个一个的写JAVA实体类很是费事.MyEclipse提供简便的方法:反向数据库 步骤大致如下: 第一 ...

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

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

  9. netbeans连接数据库_NetBeans Java EE技巧#1 –数据库中的实体类

    netbeans连接数据库 NetBeans IDE是开发各种应用程序的绝佳选择. 具体来说,我每天都使用它来开发和维护Java EE应用程序. 在过去的几个发行版中,不仅Java EE的生产力提高了 ...

最新文章

  1. (1)访问控制 (2)final关键字 (3)对象创建的过程 (4)多态
  2. 毕业BG(01背包问题)
  3. BaiduSitemap
  4. 设计模式-Strategy模式
  5. NOIP2016 D2T3 愤怒的小鸟
  6. CRM one order性能调优指南
  7. 图数据库 HugeGraph : IndexLabel
  8. 信息学奥赛C++语言:数字三角形2
  9. 如何在修改 gulpfile.js 文件后自动重启 gulp?
  10. matlab读取图片亮度,Matlab中使用imagesc函数显示的亮度图像怎么和原图像的大小不一样?...
  11. 备份恢复,DBA最后一道防线,你完全掌握了吗?
  12. 华为云获CCF BDCI 2019金融实体级情感分析大赛冠军
  13. 八、Linux系统日志管理
  14. python股票交易最大值最多可以完成k比交易_leetcode_贪心算法_python
  15. 安卓编译php,编译PHP
  16. R语言 需要安装的包
  17. 联想打印机驱动安装报错
  18. Linux下卸载anaconda3
  19. 可用性设计之过载保护
  20. 回忆我的大学——大学图书馆借书记录

热门文章

  1. linux php cpu,查找linux下进程占用CPU过高的原因,以php-fpm为例
  2. matlab作业5答案,《matlab作业题答案》.doc
  3. linux python指向python3_linux下切换python2和python3(转)
  4. java mysql 插入 乱码_java向mysql插入数据乱码问题的解决方法
  5. 建设网站服务器选择,建设网站如何去为网站选服务器?
  6. 太长的sql怎么分析_因为ESR, 我一定要推荐你这款 SQL 神器
  7. 计算机模拟试题3,计算机一级考试MSoffice全真模拟试题3
  8. 手机应用url抓取_Python爬虫入门,快速抓取大规模数据(第六部分)
  9. pdf内容怎么复制到word文档里_pdf文件怎么放到word里?这招实在是太好用了
  10. mysql close 出错_MySQL错误Forcing close of thread的两种解决方法