• 根据数据库中的元数据自动生成实体类及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.
     

          

  • 相关阅读:
    Oracle手工增加排序区避免SQL使用临时表空间排序产生物理IO
    Oracle中"TABLE ACCESS FULL"的”欺骗时刻“
    Oracle关于12C新特性InMemory踩坑历程
    Oracle19C关于参数sec_case_sensitive_logon控制密码大小写敏感问题
    友链
    RESTful API
    不自由的自由职业
    惊了!修仙=编程??
    [Git专题] 环境搭建
    Linux系统僵尸进程详解
  • 原文地址:https://www.cnblogs.com/fuhongwei041/p/1255957.html
Copyright © 2020-2023  润新知