您的位置:首页 > 数据库

根据数据库中的元数据自动生成实体类及iBatis相关的配置的工具

2008-07-29 22:34 573 查看
目前,在企业开发中开发团队一般会选择一种ORM框架来持久化数据以提高开发效率及系统的可维护性。本人结合实际开发工作中使用的SQL Server 2005 及iBatis.NET开发了DA Generator工具。下面先介绍一下访问数据库元数据使用到的SQL Server 2005中的存储过程:

存储过程sp_helpdb

--用于得到连接到的数据库实例中的所有(或特定的一个)数据库的信息,如name,db_size,owner等

--你可以在SQL Server 2005中执行一下” EXEC sp_helpdb”及” EXEC sp_helpdb @dbname='master'”,并自己分析一下执行结果。

存储过程sp_tables

--用于得到指定(或当前)数据库上下文中的所有(或指定表名的)数据库对象(包括表,视图以及系统表)的信息

--参数有:

--@table_name(类型:nvarchar(384),默认值:NULL)

指定表的名字

--@table_owner(类型:nvarchar(384),默认值:NULL)

指定表的所有者

--@table_qualifier(类型:sysname,默认值:NULL)

指定数据库的名字

--@table_type(类型:sysname,默认值:NULL)

指定数据库对象的名字

如果想要查询master数据库中用户dbo的所有表,则相应的T-SQL如下

EXEC sp_tables @table_qualifier=N'master',

@table_owner=N'dbo',

@table_type='''TABLE'''

存储过程sp_columns

--用于得到指定(或当前)数据库上下文中的指定用户的指定表的所有列(或指定列)的信息

--参数有:

--@table_qualifier, @table_owner, @table_name,类型及默认值同存储过程sp_tables中的参数

--@column_name(类型:nvarchar(384),默认值:NULL)

指定列的名字,若未指定,则返回所有列的信息

如果想要查询master数据库中用户dbo的表spt_fallback_db的所有列的信息,则相应的T-SQL如下:

EXEC sp_columns @table_qualifier=N'master',

@table_owner=N'dbo',

@table_name=N'spt_fallback_db'

DA Generator还使用了CodeDom自动生成代码。

如果你对CodeDom有兴趣,可以学习Microsoft的MSDN文档:

http://msdn.microsoft.com/en-us/library/f1dfsbhc.aspx

最后,可以根据从数据库中得到数据库表的列名,列的类型的列表接合使用CodeDom技术来生成对应的实体类,iBatis用到的insert语句,resultMap映射等。工具DA Generator即实现了这些功能。附件是可执行程序(由于想连接数据库,因此你要修改配置文件中的连接字符串)。

http://files.cnblogs.com/fuhongwei041/DAGenerator.rar

It's the end.Thank u for your reading.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐