`
zhouxin464585932
  • 浏览: 80500 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

自动生成实体类

阅读更多

方案一:

目前还存在的问题:生成的cs文件,没有进行排版。。。使用Ctrl+E+D后,还是不大美观。。。
如果有看客嫌不够漂亮,可以使用下面的存储过程,当然下面的就没上面那么强大了。可以控制格式,但是不能自动生成文件了。
SQL code
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> -- ============================================= -- Author: <shipeng.wang> -- Create date: <2009-09-11> -- Description: <根据表名创建实体类的字段和属性> -- ============================================= create proc [dbo].[p_Wsp] @tablename varchar(50) --表名 as declare @sql varchar(8000) select @sql=isnull(@sql+char(9)+'private ','public class '+@tablename+char(13)+'{'+char(13)+char(9)+'private ')+ case when a.name in('image','uniqueidentifier','ntext','varchar','ntext','nchar','nvarchar','text','char') then 'string' when a.name in('tinyint','smallint','int','bigint') then 'int' when a.name in('datetime','smalldatetime') then 'DateTime' when a.name in('float','decimal','numeric','money','real','smallmoney') then 'decimal' when a.name ='bit' then 'bool' else a.name end+' '+lower('_'+b.name)+';'+char(13)+char(9)+'public '+ case when a.name in('image','uniqueidentifier','ntext','varchar','ntext','nchar','nvarchar','text','char') then 'string' when a.name in('tinyint','smallint','int','bigint') then 'int' when a.name in('datetime','smalldatetime') then 'DateTime' when a.name in('float','decimal','numeric','money','real','smallmoney') then 'decimal' when a.name ='bit' then 'bool' else a.name end +' '+b.name+char(13)+char(9)+'{'+char(13)+char(9)+char(9)+'get{return '+lower('_'+b.name)+';}'+ char(13)+char(9)+char(9)+'set{'+lower('_'+b.name)+'=value;}'+char(13)+char(9)+'}'+char(13) from syscolumns b, (select distinct name,xtype from systypes where status=0) a where a.xtype=b.xtype and b.id=object_id(@tablename) set @sql=@sql+'}' print @sql go --调用: exec [p_Wsp] 'admin'
方案二:
-- =============================================
-- Author:        <shipeng.wang>
-- Create date: <2009-09-14>
-- Description:    <根据数据库名创建实体类>
-- =============================================
create proc p_db_wsp
@dbname varchar(50),   --数据库名
@path varchar(100),    --实体类所在目录名,如D:\My\Models
@namespace varchar(50) --实体类命名空间,默认值为Models
as
    --判断数据库是否存在
    if(db_id(@dbname)is not null)
    begin
        if(isnull(@namespace,'')='')
            set @namespace='Models'
        -- 允许配置高级选项
        EXEC sp_configure 'show advanced options', 1
        -- 重新配置
        RECONFIGURE
        -- 启用Ole Automation Procedures 
        EXEC sp_configure 'Ole Automation Procedures', 1
        -- 启用xp_cmdshell,可以向磁盘中写入文件
        EXEC sp_configure 'xp_cmdshell', 1
        -- 重新配置
        RECONFIGURE
        declare @dbsql varchar(1000),@tablename varchar(100)
        set @dbsql='declare wsp cursor for select name from '+@dbname+'..sysobjects where xtype=''u'''
        exec(@dbsql)
        open wsp
        fetch wsp into @tablename--使用游标循环遍历数据库中每个表
        while(@@fetch_status=0)
        begin
            --根据表中字段组合实体类中的字段和属性
            declare @nsql nvarchar(4000),@sql varchar(8000)
            set @nsql='select @s=isnull(@s+char(9)+''private '',''using System;'+char(13)+'using System.Collections.Generic;'
            +char(13)+'using System.Text;'+char(13)+'namespace '+@namespace+char(13)+
            '{'+char(13)+char(9)+'public class '+@tablename+char(13)+'{''+char(13)+char(9)+''private '')+
            case when a.name in(''image'',''uniqueidentifier'',''ntext'',''varchar'',''ntext'',''nchar'',''nvarchar'',''text'',''char'') then ''string''
            when a.name in(''tinyint'',''smallint'',''int'',''bigint'') then ''int''
            when a.name in(''datetime'',''smalldatetime'') then ''DateTime''
            when a.name in(''float'',''decimal'',''numeric'',''money'',''real'',''smallmoney'') then ''decimal''
            when a.name =''bit'' then ''bool''
            else a.name end+'' ''+lower(''_''+b.name)+'';''+char(13)+char(9)+''public ''+
            case when a.name in(''image'',''uniqueidentifier'',''ntext'',''varchar'',''ntext'',''nchar'',''nvarchar'',''text'',''char'') then ''string''
            when a.name in(''tinyint'',''smallint'',''int'',''bigint'') then ''int''
            when a.name in(''datetime'',''smalldatetime'') then ''DateTime''
            when a.name in(''float'',''decimal'',''numeric'',''money'',''real'',''smallmoney'') then ''decimal''
            when a.name =''bit'' then ''bool''
            else a.name end
            +'' ''+b.name+char(13)+char(9)+''{''+char(13)+char(9)+char(9)+''get{return ''+lower(''_''+b.name)+'';}''+
            char(13)+char(9)+char(9)+''set{''+lower(''_''+b.name)+''=value;}''+char(13)+char(9)+''}''+char(13)
            from '+@dbname+'..syscolumns b,
            (select distinct name,xtype from '+@dbname+'..systypes where status=0) a
            where a.xtype=b.xtype and b.id=object_id('''+@dbname+'..'+@tablename+''')'
            exec sp_executesql @nsql,N'@s varchar(8000) output',@sql output
            set @sql=@sql+char(9)+'}'+char(13)+'}'
            --print @sql
            DECLARE @err INT,@fso INT,@fleExists BIT,@file VARCHAR(100)
            SET @file=@path+'\'+@tablename+'.cs'
            EXEC @err=sp_OACreate 'Scripting.FileSystemObject',@fso OUTPUT
            EXEC @err=sp_OAMethod @fso, 'FileExists',@fleExists OUTPUT,@file
            EXEC @err = sp_OADestroy @fso

            IF @fleExists!=0
                exec('exec xp_cmdshell ''del '+@file+'''') --存在则删除
            exec('exec xp_cmdshell ''echo '+@sql+' > '+@file+'''') --将文本写进文件中
            set @sql=null
            fetch wsp into @tablename
        end
        close wsp
        deallocate wsp
        print '生成成功!'
    end
    else
        print '数据库不存在!'
go-- =============================================
-- Author:        <shipeng.wang>
-- Create date: <2009-09-14>
-- Description:    <根据数据库名创建实体类>
-- =============================================
create proc p_db_wsp
@dbname varchar(50),   --数据库名
@path varchar(100),    --实体类所在目录名,如D:\My\Models
@namespace varchar(50) --实体类命名空间,默认值为Models
as
    --判断数据库是否存在
    if(db_id(@dbname)is not null)
    begin
        if(isnull(@namespace,'')='')
            set @namespace='Models'
        -- 允许配置高级选项
        EXEC sp_configure 'show advanced options', 1
        -- 重新配置
        RECONFIGURE
        -- 启用Ole Automation Procedures 
        EXEC sp_configure 'Ole Automation Procedures', 1
        -- 启用xp_cmdshell,可以向磁盘中写入文件
        EXEC sp_configure 'xp_cmdshell', 1
        -- 重新配置
        RECONFIGURE
        declare @dbsql varchar(1000),@tablename varchar(100)
        set @dbsql='declare wsp cursor for select name from '+@dbname+'..sysobjects where xtype=''u'''
        exec(@dbsql)
        open wsp
        fetch wsp into @tablename--使用游标循环遍历数据库中每个表
        while(@@fetch_status=0)
        begin
            --根据表中字段组合实体类中的字段和属性
            declare @nsql nvarchar(4000),@sql varchar(8000color: #0

  


  
分享到:
评论

相关推荐

    C#自动生成实体类

    因此,"C#自动生成实体类"的技术应运而生,它旨在通过自动化过程来减轻开发人员的工作负担。 这个技术的核心在于能够连接到SQL数据库,分析其中的表结构,并自动生成对应的C#实体类。这样的工具或库通常会解析...

    自动生成实体类....

    在.NET开发环境中,自动生成实体类是一项常见的任务,特别是在基于ORM(对象关系映射)的框架下,如Entity Framework或NHibernate。实体类是数据库表在编程语言中的映射,它们帮助开发者通过对象来操作数据库,减少...

    Mybatis自动生成实体类

    Mybatis自动生成实体类,XML文件

    java ~ mybatis-plus 自动生成实体类 jar

    java ~ mybatis-plus 自动生成实体类 jar

    JAVA SQLite 自动生成实体类 源码

    本项目提供的"JAVA SQLite 自动生成实体类 源码"是一个实用工具,它能够帮助开发者自动生成与SQLite数据库表结构对应的Java实体类,从而简化数据操作的代码编写工作。 首先,我们来理解这个工具的工作原理。当...

    自动生成实体类工具源代码

    自动生成实体类的工具可以极大地提高开发效率,减少手动编写代码的时间和出错的可能性。 标题"自动生成实体类工具源代码"指的是一个软件工具,它的主要功能是根据数据库中的数据表自动创建对应的Java(或其他编程...

    SqlServer自动生成实体类

    通过填写SqlServer连接字符串,可根据数据库的表结构自动生成实体类,这在项目初期开发的时候能为我们省下很多的时间,特别是大型的项目.

    根据数据库表自动生成实体类的源代码

    用一个根据数据库表自动生成实体类代码的案例讲解了代码生成器的核心思路,相关博客地址:https://blog.csdn.net/qq_31142553/article/details/93673384。

    mysql自动生成实体类

    "mysql自动生成实体类"就是这样一个工具,它能够帮助开发者快速地根据MySQL中的表结构生成对应的Java实体类,极大地减少了手动编写代码的工作量。 生成实体类的主要目的是实现对象关系映射(Object-Relational ...

    eclipse自动生成实体类

    在Java开发中,Eclipse是一款广泛使用的集成开发环境(IDE),它提供了许多便捷的功能,其中之一就是能够自动生成实体类。实体类通常用于表示数据库中的表,它们是对象关系映射(ORM)框架如Hibernate的基础。这个...

    springboot jpa 自动生成实体类的 文件 Generate POJOs.groovy

    springboot jpa 自动生成实体类的 文件 可以拿走直接用 Generate POJOs.groovy

    mybatis自动生成实体类

    本文将详细介绍如何使用MyBatis的代码生成器(Generator)来自动生成实体类,以及相关的配置和使用步骤。 首先,我们需要在项目中配置MyBatis的generator.xml文件。这个文件是MyBatis Generator的配置中心,它包含...

    多数据库支持、自动生成实体类和SQL语句的工具1.3.3版 最新版

    标题中的“多数据库支持、自动生成实体类和SQL语句的工具1.3.3版 最新版”指的是一款能够跨多种数据库系统,并且具备自动创建实体类和SQL语句功能的开发工具的最新版本。这个工具对于软件开发者,尤其是那些处理多样...

    一个自动生成实体类和SQL语句的工具 1.2.1版

    为了解决这个问题,存在许多自动化工具,其中一个便是“一个自动生成实体类和SQL语句的工具 1.2.1版”。这个工具的主要目的是提高开发效率,减少手动编写代码的工作量,确保代码的一致性和准确性。 首先,我们来...

    mybatis自动生成实体类和配制文件

    标题提到的"mybatis自动生成实体类和配制文件",指的是利用特定的工具或插件来自动化创建MyBatis框架所需的实体类(Entity)和配置文件(主要是Mapper XML文件)。这大大提高了开发效率,减少了手动编写这些重复性...

Global site tag (gtag.js) - Google Analytics