创建T4模本拷贝以下代码

<#@ template language="C#" debug="false" hostspecific="true"#>
<#@ include file="EF.Utility.CS.ttinclude"#><#@ output extension=".cs"#><#const string inputFile = @"..\WebCms.edmx";
var textTransform = DynamicTextTransformation.Create(this);
var code = new CodeGenerationTools(this);
var ef = new MetadataTools(this);
var typeMapper = new TypeMapper(code, ef, textTransform.Errors);
var    fileManager = EntityFrameworkTemplateFileManager.Create(this);
var itemCollection = new EdmMetadataLoader(textTransform.Host, textTransform.Errors).CreateEdmItemCollection(inputFile);
var codeStringGenerator = new CodeStringGenerator(code, typeMapper, ef);if (!typeMapper.VerifyCaseInsensitiveTypeUniqueness(typeMapper.GetAllGlobalItems(itemCollection), inputFile))
{return string.Empty;
}WriteHeader(codeStringGenerator, fileManager);foreach (var entity in typeMapper.GetItemsToGenerate<EntityType>(itemCollection))
{fileManager.StartNewFile(entity.Name + "_make.cs");
#>
<#=codeStringGenerator.UsingDirectives(inHeader: false)#>
namespace Model
{public  class <#=entity.Name#>_make {
<#var propertiesWithDefaultValues = typeMapper.GetPropertiesWithDefaultValues(entity);var collectionNavigationProperties = typeMapper.GetCollectionNavigationProperties(entity);var complexProperties = typeMapper.GetComplexProperties(entity);var simpleProperties = typeMapper.GetSimpleProperties(entity);if (simpleProperties.Any()){foreach (var edmProperty in simpleProperties){
#><#=codeStringGenerator.Property(edmProperty)#>
<#}}if (complexProperties.Any()){
#><#foreach(var complexProperty in complexProperties){
#><#=codeStringGenerator.Property(complexProperty)#>
<#}}#>
}
<#EndNamespace(code);
}
foreach (var complex in typeMapper.GetItemsToGenerate<ComplexType>(itemCollection))
{fileManager.StartNewFile(complex.Name + ".cs");BeginNamespace(code);
#>
<#=codeStringGenerator.UsingDirectives(inHeader: false, includeCollections: false)#>
<#=Accessibility.ForType(complex)#> partial class <#=code.Escape(complex)#>
{
<#var complexProperties = typeMapper.GetComplexProperties(complex);var propertiesWithDefaultValues = typeMapper.GetPropertiesWithDefaultValues(complex);if (propertiesWithDefaultValues.Any() || complexProperties.Any()){
#>public <#=code.Escape(complex)#>(){
<#foreach (var edmProperty in propertiesWithDefaultValues){
#>this.<#=code.Escape(edmProperty)#> = <#=typeMapper.CreateLiteral(edmProperty.DefaultValue)#>;
<#}foreach (var complexProperty in complexProperties){
#>this.<#=code.Escape(complexProperty)#> = new <#=typeMapper.GetTypeName(complexProperty.TypeUsage)#>();
<#}
#>}
<#}var simpleProperties = typeMapper.GetSimpleProperties(complex);if (simpleProperties.Any()){foreach(var edmProperty in simpleProperties){
#><#=codeStringGenerator.Property(edmProperty)#>
<#}}if (complexProperties.Any()){
#><#foreach(var edmProperty in complexProperties){
#><#=codeStringGenerator.Property(edmProperty)#>
<#}}
#>
}
<#EndNamespace(code);
}foreach (var enumType in typeMapper.GetEnumItemsToGenerate(itemCollection))
{fileManager.StartNewFile(enumType.Name + ".cs");BeginNamespace(code);
#>
<#=codeStringGenerator.UsingDirectives(inHeader: false, includeCollections: false)#>
<#if (typeMapper.EnumIsFlags(enumType)){
#>
[Flags]
<#}
#>
<#=codeStringGenerator.EnumOpening(enumType)#>
{
<#var foundOne = false;foreach (MetadataItem member in typeMapper.GetEnumMembers(enumType)){foundOne = true;
#><#=code.Escape(typeMapper.GetEnumMemberName(member))#> = <#=typeMapper.GetEnumMemberValue(member)#>,
<#}if (foundOne){this.GenerationEnvironment.Remove(this.GenerationEnvironment.Length - 3, 1);}
#>
}
<#EndNamespace(code);
}fileManager.Process();#><#+
public void WriteHeader(CodeStringGenerator codeStringGenerator, EntityFrameworkTemplateFileManager fileManager)
{fileManager.StartHeader();
#>
//------------------------------------------------------------------------------
// <auto-generated>
// <#=GetResourceString("Template_GeneratedCodeCommentLine1")#>
//
// <#=GetResourceString("Template_GeneratedCodeCommentLine2")#>
// <#=GetResourceString("Template_GeneratedCodeCommentLine3")#>
// </auto-generated>
//------------------------------------------------------------------------------
<#=codeStringGenerator.UsingDirectives(inHeader: true)#>
<#+fileManager.EndBlock();
}public void BeginNamespace(CodeGenerationTools code)
{var codeNamespace = code.VsNamespaceSuggestion();if (!String.IsNullOrEmpty(codeNamespace)){
#>
namespace <#=code.EscapeNamespace(codeNamespace)#>
{
<#+PushIndent("    ");}
}public void EndNamespace(CodeGenerationTools code)
{if (!String.IsNullOrEmpty(code.VsNamespaceSuggestion())){PopIndent();
#>
}
<#+}
}public const string TemplateId = "CSharp_DbContext_Types_EF5";public class CodeStringGenerator
{private readonly CodeGenerationTools _code;private readonly TypeMapper _typeMapper;private readonly MetadataTools _ef;public CodeStringGenerator(CodeGenerationTools code, TypeMapper typeMapper, MetadataTools ef){ArgumentNotNull(code, "code");ArgumentNotNull(typeMapper, "typeMapper");ArgumentNotNull(ef, "ef");_code = code;_typeMapper = typeMapper;_ef = ef;}public string Property(EdmProperty edmProperty){return string.Format(CultureInfo.InvariantCulture,"{0} {1} {2} {{ {3}get; {4}set; }}",Accessibility.ForProperty(edmProperty),_typeMapper.GetTypeName(edmProperty.TypeUsage),_code.Escape(edmProperty),_code.SpaceAfter(Accessibility.ForGetter(edmProperty)),_code.SpaceAfter(Accessibility.ForSetter(edmProperty)));}public string NavigationProperty(NavigationProperty navigationProperty){var endType = _typeMapper.GetTypeName(navigationProperty.ToEndMember.GetEntityType());return string.Format(CultureInfo.InvariantCulture,"{0} {1} {2} {{ {3}get; {4}set; }}",AccessibilityAndVirtual(Accessibility.ForProperty(navigationProperty)),navigationProperty.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many ? ("ICollection<" + endType + ">") : endType,_code.Escape(navigationProperty),_code.SpaceAfter(Accessibility.ForGetter(navigationProperty)),_code.SpaceAfter(Accessibility.ForSetter(navigationProperty)));}public string AccessibilityAndVirtual(string accessibility){return accessibility + (accessibility != "private" ? " virtual" : "");}public string EntityClassOpening(EntityType entity){return string.Format(CultureInfo.InvariantCulture,"{0} {1}partial class {2}{3}",Accessibility.ForType(entity),_code.SpaceAfter(_code.AbstractOption(entity)),_code.Escape(entity),_code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType)));}public string EnumOpening(SimpleType enumType){return string.Format(CultureInfo.InvariantCulture,"{0} enum {1} : {2}",Accessibility.ForType(enumType),_code.Escape(enumType),_code.Escape(_typeMapper.UnderlyingClrType(enumType)));}public void WriteFunctionParameters(EdmFunction edmFunction, Action<string, string, string, string> writeParameter){var parameters = FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef);foreach (var parameter in parameters.Where(p => p.NeedsLocalVariable)){var isNotNull = parameter.IsNullableOfT ? parameter.FunctionParameterName + ".HasValue" : parameter.FunctionParameterName + " != null";var notNullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", " + parameter.FunctionParameterName + ")";var nullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", typeof(" + parameter.RawClrTypeName + "))";writeParameter(parameter.LocalVariableName, isNotNull, notNullInit, nullInit);}}public string ComposableFunctionMethod(EdmFunction edmFunction, string modelNamespace){var parameters = _typeMapper.GetParameters(edmFunction);return string.Format(CultureInfo.InvariantCulture,"{0} IQueryable<{1}> {2}({3})",AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)),_typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace),_code.Escape(edmFunction),string.Join(", ", parameters.Select(p => p.FunctionParameterType + " " + p.FunctionParameterName).ToArray()));}public string ComposableCreateQuery(EdmFunction edmFunction, string modelNamespace){var parameters = _typeMapper.GetParameters(edmFunction);return string.Format(CultureInfo.InvariantCulture,"return ((IObjectContextAdapter)this).ObjectContext.CreateQuery<{0}>(\"[{1}].[{2}]({3})\"{4});",_typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace),edmFunction.NamespaceName,edmFunction.Name,string.Join(", ", parameters.Select(p => "@" + p.EsqlParameterName).ToArray()),_code.StringBefore(", ", string.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray())));}public string FunctionMethod(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption){var parameters = _typeMapper.GetParameters(edmFunction);var returnType = _typeMapper.GetReturnType(edmFunction);var paramList = String.Join(", ", parameters.Select(p => p.FunctionParameterType + " " + p.FunctionParameterName).ToArray());if (includeMergeOption){paramList = _code.StringAfter(paramList, ", ") + "MergeOption mergeOption";}return string.Format(CultureInfo.InvariantCulture,"{0} {1} {2}({3})",AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)),returnType == null ? "int" : "ObjectResult<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">",_code.Escape(edmFunction),paramList);}public string ExecuteFunction(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption){var parameters = _typeMapper.GetParameters(edmFunction);var returnType = _typeMapper.GetReturnType(edmFunction);var callParams = _code.StringBefore(", ", String.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray()));if (includeMergeOption){callParams = ", mergeOption" + callParams;}return string.Format(CultureInfo.InvariantCulture,"return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction{0}(\"{1}\"{2});",returnType == null ? "" : "<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">",edmFunction.Name,callParams);}public string DbSet(EntitySet entitySet){return string.Format(CultureInfo.InvariantCulture,"{0} DbSet<{1}> {2} {{ get; set; }}",Accessibility.ForReadOnlyProperty(entitySet),_typeMapper.GetTypeName(entitySet.ElementType),_code.Escape(entitySet));}public string UsingDirectives(bool inHeader, bool includeCollections = true){return inHeader == string.IsNullOrEmpty(_code.VsNamespaceSuggestion())? string.Format(CultureInfo.InvariantCulture,"{0}using System;{1}" +"{2}",inHeader ? Environment.NewLine : "",includeCollections ? (Environment.NewLine + "using System.Collections.Generic;") : "",inHeader ? "" : Environment.NewLine): "";}
}public class TypeMapper
{private const string ExternalTypeNameAttributeName = @"http://schemas.microsoft.com/ado/2006/04/codegeneration:ExternalTypeName";private readonly System.Collections.IList _errors;private readonly CodeGenerationTools _code;private readonly MetadataTools _ef;public TypeMapper(CodeGenerationTools code, MetadataTools ef, System.Collections.IList errors){ArgumentNotNull(code, "code");ArgumentNotNull(ef, "ef");ArgumentNotNull(errors, "errors");_code = code;_ef = ef;_errors = errors;}public string GetTypeName(TypeUsage typeUsage){return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace: null);}public string GetTypeName(EdmType edmType){return GetTypeName(edmType, isNullable: null, modelNamespace: null);}public string GetTypeName(TypeUsage typeUsage, string modelNamespace){return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace);}public string GetTypeName(EdmType edmType, string modelNamespace){return GetTypeName(edmType, isNullable: null, modelNamespace: modelNamespace);}public string GetTypeName(EdmType edmType, bool? isNullable, string modelNamespace){if (edmType == null){return null;}var collectionType = edmType as CollectionType;if (collectionType != null){return String.Format(CultureInfo.InvariantCulture, "ICollection<{0}>", GetTypeName(collectionType.TypeUsage, modelNamespace));}var typeName = _code.Escape(edmType.MetadataProperties.Where(p => p.Name == ExternalTypeNameAttributeName).Select(p => (string)p.Value).FirstOrDefault())?? (modelNamespace != null && edmType.NamespaceName != modelNamespace ?_code.CreateFullName(_code.EscapeNamespace(edmType.NamespaceName), _code.Escape(edmType)) :_code.Escape(edmType));if (edmType is StructuralType){return typeName;}if (edmType is SimpleType){var clrType = UnderlyingClrType(edmType);if (!IsEnumType(edmType)){typeName = _code.Escape(clrType);}return clrType.IsValueType && isNullable == true ?String.Format(CultureInfo.InvariantCulture, "Nullable<{0}>", typeName) :typeName;}throw new ArgumentException("edmType");}public Type UnderlyingClrType(EdmType edmType){ArgumentNotNull(edmType, "edmType");var primitiveType = edmType as PrimitiveType;if (primitiveType != null){return primitiveType.ClrEquivalentType;}if (IsEnumType(edmType)){return GetEnumUnderlyingType(edmType).ClrEquivalentType;}return typeof(object);}public object GetEnumMemberValue(MetadataItem enumMember){ArgumentNotNull(enumMember, "enumMember");var valueProperty = enumMember.GetType().GetProperty("Value");return valueProperty == null ? null : valueProperty.GetValue(enumMember, null);}public string GetEnumMemberName(MetadataItem enumMember){ArgumentNotNull(enumMember, "enumMember");var nameProperty = enumMember.GetType().GetProperty("Name");return nameProperty == null ? null : (string)nameProperty.GetValue(enumMember, null);}public System.Collections.IEnumerable GetEnumMembers(EdmType enumType){ArgumentNotNull(enumType, "enumType");var membersProperty = enumType.GetType().GetProperty("Members");return membersProperty != null ? (System.Collections.IEnumerable)membersProperty.GetValue(enumType, null): Enumerable.Empty<MetadataItem>();}public bool EnumIsFlags(EdmType enumType){ArgumentNotNull(enumType, "enumType");var isFlagsProperty = enumType.GetType().GetProperty("IsFlags");return isFlagsProperty != null && (bool)isFlagsProperty.GetValue(enumType, null);}public bool IsEnumType(GlobalItem edmType){ArgumentNotNull(edmType, "edmType");return edmType.GetType().Name == "EnumType";}public PrimitiveType GetEnumUnderlyingType(EdmType enumType){ArgumentNotNull(enumType, "enumType");return (PrimitiveType)enumType.GetType().GetProperty("UnderlyingType").GetValue(enumType, null);}public string CreateLiteral(object value){if (value == null || value.GetType() != typeof(TimeSpan)){return _code.CreateLiteral(value);}return string.Format(CultureInfo.InvariantCulture, "new TimeSpan({0})", ((TimeSpan)value).Ticks);}public bool VerifyCaseInsensitiveTypeUniqueness(IEnumerable<string> types, string sourceFile){ArgumentNotNull(types, "types");ArgumentNotNull(sourceFile, "sourceFile");var hash = new HashSet<string>(StringComparer.InvariantCultureIgnoreCase);if (types.Any(item => !hash.Add(item))){_errors.Add(new CompilerError(sourceFile, -1, -1, "6023",String.Format(CultureInfo.CurrentCulture, GetResourceString("Template_CaseInsensitiveTypeConflict"))));return false;}return true;}public IEnumerable<SimpleType> GetEnumItemsToGenerate(IEnumerable<GlobalItem> itemCollection){return GetItemsToGenerate<SimpleType>(itemCollection).Where(e => IsEnumType(e));}public IEnumerable<T> GetItemsToGenerate<T>(IEnumerable<GlobalItem> itemCollection) where T: EdmType{return itemCollection.OfType<T>().Where(i => !i.MetadataProperties.Any(p => p.Name == ExternalTypeNameAttributeName)).OrderBy(i => i.Name);}public IEnumerable<string> GetAllGlobalItems(IEnumerable<GlobalItem> itemCollection){return itemCollection.Where(i => i is EntityType || i is ComplexType || i is EntityContainer || IsEnumType(i)).Select(g => GetGlobalItemName(g));}public string GetGlobalItemName(GlobalItem item){if (item is EdmType){return ((EdmType)item).Name;}else{return ((EntityContainer)item).Name;}}public IEnumerable<EdmProperty> GetSimpleProperties(EntityType type){return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type);}public IEnumerable<EdmProperty> GetSimpleProperties(ComplexType type){return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type);}public IEnumerable<EdmProperty> GetComplexProperties(EntityType type){return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type);}public IEnumerable<EdmProperty> GetComplexProperties(ComplexType type){return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type);}public IEnumerable<EdmProperty> GetPropertiesWithDefaultValues(EntityType type){return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null);}public IEnumerable<EdmProperty> GetPropertiesWithDefaultValues(ComplexType type){return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null);}public IEnumerable<NavigationProperty> GetNavigationProperties(EntityType type){return type.NavigationProperties.Where(np => np.DeclaringType == type);}public IEnumerable<NavigationProperty> GetCollectionNavigationProperties(EntityType type){return type.NavigationProperties.Where(np => np.DeclaringType == type && np.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many);}public FunctionParameter GetReturnParameter(EdmFunction edmFunction){ArgumentNotNull(edmFunction, "edmFunction");var returnParamsProperty = edmFunction.GetType().GetProperty("ReturnParameters");return returnParamsProperty == null? edmFunction.ReturnParameter: ((IEnumerable<FunctionParameter>)returnParamsProperty.GetValue(edmFunction, null)).FirstOrDefault();}public bool IsComposable(EdmFunction edmFunction){ArgumentNotNull(edmFunction, "edmFunction");var isComposableProperty = edmFunction.GetType().GetProperty("IsComposableAttribute");return isComposableProperty != null && (bool)isComposableProperty.GetValue(edmFunction, null);}public IEnumerable<FunctionImportParameter> GetParameters(EdmFunction edmFunction){return FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef);}public TypeUsage GetReturnType(EdmFunction edmFunction){var returnParam = GetReturnParameter(edmFunction);return returnParam == null ? null : _ef.GetElementType(returnParam.TypeUsage);}public bool GenerateMergeOptionFunction(EdmFunction edmFunction, bool includeMergeOption){var returnType = GetReturnType(edmFunction);return !includeMergeOption && returnType != null && returnType.EdmType.BuiltInTypeKind == BuiltInTypeKind.EntityType;}
}public class EdmMetadataLoader
{private readonly IDynamicHost _host;private readonly System.Collections.IList _errors;public EdmMetadataLoader(IDynamicHost host, System.Collections.IList errors){ArgumentNotNull(host, "host");ArgumentNotNull(errors, "errors");_host = host;_errors = errors;}public IEnumerable<GlobalItem> CreateEdmItemCollection(string sourcePath){ArgumentNotNull(sourcePath, "sourcePath");if (!ValidateInputPath(sourcePath)){return new EdmItemCollection();}var schemaElement = LoadRootElement(_host.ResolvePath(sourcePath));if (schemaElement != null){using (var reader = schemaElement.CreateReader()){IList<EdmSchemaError> errors;var itemCollection = MetadataItemCollectionFactory.CreateEdmItemCollection(new[] { reader }, out errors);ProcessErrors(errors, sourcePath);return itemCollection;}}return new EdmItemCollection();}public string GetModelNamespace(string sourcePath){ArgumentNotNull(sourcePath, "sourcePath");if (!ValidateInputPath(sourcePath)){return string.Empty;}var model = LoadRootElement(_host.ResolvePath(sourcePath));if (model == null){return string.Empty;}var attribute = model.Attribute("Namespace");return attribute != null ? attribute.Value : "";}private bool ValidateInputPath(string sourcePath){if (sourcePath == "$" + "edmxInputFile" + "$"){_errors.Add(new CompilerError(_host.TemplateFile ?? sourcePath, 0, 0, string.Empty,GetResourceString("Template_ReplaceVsItemTemplateToken")));return false;}return true;}public XElement LoadRootElement(string sourcePath){ArgumentNotNull(sourcePath, "sourcePath");var root = XElement.Load(sourcePath, LoadOptions.SetBaseUri | LoadOptions.SetLineInfo);return root.Elements().Where(e => e.Name.LocalName == "Runtime").Elements().Where(e => e.Name.LocalName == "ConceptualModels").Elements().Where(e => e.Name.LocalName == "Schema").FirstOrDefault()?? root;}private void ProcessErrors(IEnumerable<EdmSchemaError> errors, string sourceFilePath){foreach (var error in errors){_errors.Add(new CompilerError(error.SchemaLocation ?? sourceFilePath,error.Line,error.Column,error.ErrorCode.ToString(CultureInfo.InvariantCulture),error.Message){IsWarning = error.Severity == EdmSchemaErrorSeverity.Warning});}}public bool IsLazyLoadingEnabled(EntityContainer container){string lazyLoadingAttributeValue;var lazyLoadingAttributeName = MetadataConstants.EDM_ANNOTATION_09_02 + ":LazyLoadingEnabled";bool isLazyLoading;return !MetadataTools.TryGetStringMetadataPropertySetting(container, lazyLoadingAttributeName, out lazyLoadingAttributeValue)|| !bool.TryParse(lazyLoadingAttributeValue, out isLazyLoading)|| isLazyLoading;}
}public static void ArgumentNotNull<T>(T arg, string name) where T : class
{if (arg == null){throw new ArgumentNullException(name);}
}private static readonly Lazy<System.Resources.ResourceManager> ResourceManager =new Lazy<System.Resources.ResourceManager>(() => new System.Resources.ResourceManager("System.Data.Entity.Design", typeof(MetadataItemCollectionFactory).Assembly), isThreadSafe: true);public static string GetResourceString(string resourceName)
{ArgumentNotNull(resourceName, "resourceName");return ResourceManager.Value.GetString(resourceName, null);
}
#>

转载于:https://www.cnblogs.com/lkd3063601/p/7344249.html

EFT4 生成实体类相关推荐

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

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

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

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

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

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

  4. 实体类dao接口mysql_利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件...

    解决问题: 可利用MyBatis生成器自动生成实体类.DAO接口和Mapping映射文件. 测试环境准备: 新建一个mysql数据库,例如mungerzTest. 生成一张主键为自增ID的学生表: C ...

  5. 在springboot中使用mybatis generate自动生成实体类和mapper

    1.在全局的pom中引入mybatis generate的依赖 <!--自动生成实体--><dependency><groupId>org.mybatis.gene ...

  6. php写实体类,自动生成实体类(方式一)

    YMP框架自v1.0开始就支持通过数据库表结构自动生成实体类代码,所以v2.0版本不但重构了实体代码生成器,而且更简单好用! #------------------------------------ ...

  7. Mybatis自动生成实体类等代码

    Mybatis自动生成实体类等代码 具体步骤 具体步骤 在本机随便找个目录存放以下文件,如图(mybatis-generator-core-1.3.5.jar 和 mysql-connector-ja ...

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

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

  9. serialVersionUID的作用以及如何用idea自动生成实体类的serialVersionUID

    转载:http://blog.csdn.net/liuzongl2012/article/details/45168585 serialVersionUID的作用: 通过判断实体类的serialVer ...

最新文章

  1. Objective C 错误整理
  2. python box2d_win10+Anaconda3成功使用pip安装Box2d
  3. Python中sort和sorted的用法与区别
  4. python enumerate()函数
  5. 第几天? 2005
  6. python 转置_Python实现GIF动画转置 超好玩!
  7. css横向排列_前端初学者李不白,html+css的角度,带你分析蘑菇街官网!!!
  8. 【车间调度】基于matlab灰狼优化算法求解柔性作业车间问题【含Matlab源码 661期】
  9. java右移位_Java移位运算符详解实例
  10. Linux 安装 VMware Player
  11. M文件打包成jar包详解
  12. 从零开始搭建ROS智能小车@sp头子
  13. python txt文件常用读写操作
  14. 基于 Nios II 的串口打印和流水灯设计【使用 Quartus 软件】【掌握 SOPC 开发流程】
  15. 天空飘彩带的css3代码_纯CSS3实现飘逸洒脱带有飞行效果的三级下拉菜单
  16. 算法-第四版-练习1.3.19解答
  17. Spring配置log4j实例
  18. ajax牙椅aj11,AJ11拆解图 AJ11配置拆解测评
  19. 推荐一些煲音箱的音乐
  20. QT读取EXCEL表格日期格式问题解决

热门文章

  1. kong及konga的最新版本安装
  2. https网站打不开如何解决
  3. 官方确认索尼PS5创史上最佳首发记录 国行版可能要2021年见
  4. mysql经典四表查询_sql 经典四表查询
  5. unbound部署DNS
  6. python count函数时间复杂度_Python之时间复杂度
  7. MySQL如何查询表中重复的数据
  8. Word学习笔记-使用技巧
  9. 如何把删除的文件复原?恢复数据其实也不难
  10. ionic3 版本更新