自定义实体的代码自动生成

原创 2006年09月05日 21:17:00
在使用三层架构的时候,老是要为自定义实体写很多的get set方法,真是不爽, 实在不想动手写,就想办法写了个存储过程,以帮助我自动生层实体代码,供打架参考。

if(object_id('generatecode')) is not null drop proc generatecode
go
CREATE proc generatecode
    
@table varchar(50)
as

declare @sqlstr varchar(2000)    
create table #tmp    
(    
    column_name 
varchar(20),    
    type_name 
varchar(20),    
    length  
varchar(10)    
)    

create table #text(n_text varchar(1000))

select @sqlstr ='      
insert into #tmp (column_name,type_name,length) select name,type_name,a.prec    
    from syscolumns a ,master.dbo.spt_datatype_info b    
    where id = object_id(N
'''+@table+'''
    and OBJECTPROPERTY(id, N
''IsUserTable'') =1    
    and  a.xtype=b.ss_dtype 
    and  a.length = isnull(b.fixlen, a.length)    
    AND isnull(b.AUTO_INCREMENT,0) = isnull(ColumnProperty (a.id, a.name, 
''IsIdentity''),0)    
    AND (b.ODBCVer is null or b.ODBCVer = 2)    
'     
execute(@sqlstr)

declare @name varchar(20)
declare @type varchar(20)
declare cur cursor scroll for select column_name,type_name from #tmp
open cur
fetch next from cur into @name,@type
while @@fetch_status = 0
begin
    
insert into #text values('private '+ case when @type='varchar' or @type='nvarchar' or @type='char' or @type='text' or @type='ntext' then 'String ' + @name + ';'
                
when @type='int' or @type='int identity' then 'int ' + @name + ';'
                
when @type='datetime' or @type='smalldatetime' then 'DateTime ' + @name + ';' 
                
when @type='bit' then 'bool ' + @name + ';' 
                
when @type='decimal' or @type='numeric' or @type='money' or @type='smallmoney' then 'decimal ' + @name + ';' 
                
when @type='float' then 'double ' + @name + ';' 
                
when @type='binary' or @type='image' or @type='varbinary' or @type='timestamp' then 'byte[] ' + @name + ';' 
                
when @type='real' then 'single ' + @name + ';' 
                
end
    )
    
fetch next from cur into @name,@type
end

fetch absolute 1 from cur into @name,@type
while @@fetch_status = 0
begin
    
insert into #text values('public '+ case when @type='varchar' or @type='nvarchar' or @type='char' or @type='text' or @type='ntext' then 'String ' + upper(@name)
                
when @type='int' or @type='int identity' then 'int ' + upper(@name)
                
when @type='datetime' or @type='smalldatetime' then 'DateTime ' + upper(@name)
                
when @type='bit' then 'bool ' + upper(@name
                
when @type='decimal' or @type='numeric' or @type='money' or @type='smallmoney' then 'decimal ' + @name
                
when @type='float' then 'double ' + @name
                
when @type='binary' or @type='image' or @type='varbinary' or @type='timestamp' then 'byte[] ' + @name
                
when @type='real' then 'single ' + @name
                
end
    )
    
insert into #text values('{')
    
insert into #text values('get{return this.' + @name + ';}')
    
insert into #text values('set{this.' + @name + ' = value;}')
    
insert into #text values('}')
    
fetch next from cur into @name,@type
end
close cur
deallocate cur
select * from #text
drop table #tmp
drop table #text
GO

exec generatecode 'userinfo'

C#程序自动生成 实体类

C#程序自动生成 实体类   1.xml文件部分         workstation id=localhost;packet size=8192;user id=sa;data source=19...
  • moonshineidolon
  • moonshineidolon
  • 2006年12月29日 17:00
  • 5533

MyBatis-Generator自动生成实体代码

MyBatis Generator自动生成实体代码 首先新建一个Maven工程,在maven工程中的resource中创建generatorConfig.xml 配置generatorC...
  • xxf159797
  • xxf159797
  • 2017年11月27日 11:48
  • 56

Mybatis-Plus代码生成器

package com.tout.util;import java.util.HashMap; import java.util.Map;import com.baomidou.mybatisplus...
  • qq_39189632
  • qq_39189632
  • 2017年10月11日 20:28
  • 318

使用myEclipse插件从数据库自动生成实体类

转载于 http://blog.csdn.net/judyfun/article/details/32714525   在开发项目的阶段,当项目的数据库表设计完毕之后,接下来就是要进...
  • freewindgo
  • freewindgo
  • 2016年10月17日 09:41
  • 2728

MyBatis自动生成实体类

需要的工具 mybatis-generator-core-1.3.2.jar mysql-connector-java-5.0.4.jar 第一步:编写一个MybatisGeneratorUtil...
  • qq_31151929
  • qq_31151929
  • 2016年03月23日 11:45
  • 2556

利用自定义的SQL语句生成类代替实体类的使用

使用实体类已经是七八年前的事情了,当时觉得实体类封装实现了业务与数据库的分离,代码开发很好。可是随着使用的加深,发现1、实体类、实体类给界面赋值,界面赋值给实体类,至少三遍在写实体类的属性代码;2、当...
  • jsyhello
  • jsyhello
  • 2015年11月17日 17:14
  • 1090

JOOQ 学习笔记一:代码自动生成

第一步:下载mysql 和jooq 关联jar 文件(基于maven下载)。 4.0.0 com.zzg jooq.demo 0.0.1-SNAPSHOT ...
  • zhouzhiwengang
  • zhouzhiwengang
  • 2017年06月20日 02:29
  • 1498

MyBatis Generator自动生成实体代码

MyBatis Generator自动生成实体代码首先新建一个Maven工程Maven配置如下
  • qq_27571221
  • qq_27571221
  • 2016年12月09日 14:23
  • 1749

ibatis和mybatis 自动生成代码

在myeclipse中示例 ibatis和mybatis自动生成代码
  • gao36951
  • gao36951
  • 2014年08月25日 20:21
  • 4958

自动生成实体,Dao层代码

今天来介绍下怎么用mybatis-gennerator插件自动生成mybatis所需要的dao、bean、mapper xml文件,这样我们可以节省一部分精力,把精力放在业务逻辑上。 之前看过很...
  • rwb0123
  • rwb0123
  • 2017年04月13日 20:01
  • 845
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自定义实体的代码自动生成
举报原因:
原因补充:

(最多只允许输入30个字)