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

    目前,在企业开发中开发团队一般会选择一种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即实现了这些功能。附件是可执行程序(由于想连接数据库,因此你要修改配置文件中的连接字符串)

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

        It's the end.Thank u for your reading.
 

 

      

posted on 2008-07-29 22:34  James.H.Fu  阅读(3949)  评论(3编辑  收藏  举报

导航