日志方法二: 使用其它方式的日志记录方式,只需要声明市适当的ogFactoryAdapter即可。在iBATISDataMapper框架中使用ApacheLog4Net记录日志的配置如下所示: Log4NetLoggerFA提供了下表的属性参数设置: 配置类型inline 说明 log4net节点使用当前这个应用程序配置文件(app.config/web.config或其它名称的配置文件)文件中的log4net节点。 filefile-watch (同时需要提供configFile参数)-log4net使用在configFile参数中指定的文件处理日志。 (同时需要提供configFile参数)-log4net使用在configFile参数中指定的文件处理日志,如果configFile参数中指定的文件内容有变化,log4net会自动根据新的配置进行重新设置。 externaliBATIS不对log4net进行配置. 6.6.12.1举例: 1.用于Consoleout输出日志的最简单配置: 为了在我们的应用程序中使用Log4Net,需要提供对Log4Net的配置信息。可以在我们的构件中增加一个配置文件,并在配置文件中含有 IBatisNet.DataMapper.Configuration.Statements.DefaultPreparedCommand项表明把DataMapper中生成的数据库操作语句、参数、参数值也记录在日志中,这有利于对程序进行调试。 下面是一段对数据库操作语句的日志记录样本: 2005-06-0801:39:33[3872]DEBUGIBatisNet.DataMapper.Commands.DefaultPreparedCommand-StatementId:[User.Update]PreparedStatement:[UPDATE[User]SET[DateLastUpdated]=NOW()WHERE[UserId]=?]2005-06-0801:39:43[3872]DEBUGIBatisNet.DataMapper.Commands.DefaultPreparedCommand-StatementId:[User.Update]Parameters:[param0=[UserId,1]] 2005-06-0801:39:53[3872]DEBUGIBatisNet.DataMapper.Commands.DefaultPreparedCommand-StatementId:[User.Update]Types:[param0=[String,System.Int32]] 还可以把通过使用正则表达式对日志字符串进行过滤,把不同的操作语句日志存放到不同的文件中。如下例所示: Cache日志样本: 2005-06-0801:38:34,403[3648]DEBUGIBatisNet.DataMapper.Configuration.Cache.CacheModel-FlushcacheModelnamedAccount.account-cacheforstatement'UpdateAccountViaParameterMap' DataMapper数据源连接会话日志样本: 2005-06-0801:39:42,660[3872]DEBUGIBatisNet.DataMapper.SqlMapSession[]-OpenConnection\ to\SQLServer7.0/2000,providerV1.0.5000.0inframework.NETV1.1\ 2005-06-0801:39:42,660[3872]DEBUGIBatisNet.DataMapper.Commands.DefaultPreparedCommand[]-PreparedStatement:[select*fromOrderswhereOrder_ID=@param0] 2005-06-0801:39:42,660[3872]DEBUGIBatisNet.DataMapper.Commands.DefaultPreparedCommand[]-Parameters:[@param0=[value,1]] 2005-06-0801:39:42,660[3872]DEBUGIBatisNet.DataMapper.Commands.DefaultPreparedCommand[]-Types:[@param0=[Int32,System.Int32]] 2005-06-0801:39:42,676[3872]DEBUGIBatisNet.DataMapper.SqlMapSession[]-CloseConnection\to \SQLServer7.0/2000,providerV1.0.5000.0inframework.NETV1.1\ LazyLoadList运行日志样本: 2005-06-0801:39:42,316[3872]DEBUGIBatisNet.DataMapper.LazyLoadList[]-Proxyfyingcalltoget_Count 2005-06-0801:39:42,316[3872]DEBUGIBatisNet.DataMapper.LazyLoadList[]-Proxyfyingcall,querystatementGetLineItemsForOrder 2005-06-0801:39:42,316[3872]DEBUGIBatisNet.DataMapper.SqlMapSession[]-OpenConnection\to \SQLServer7.0/2000,providerV1.0.5000.0inframework.NETV1.1\ 2005-06-0801:39:42,316[3872]DEBUGIBatisNet.DataMapper.Commands.DefaultPreparedCommand[]-PreparedStatement:[selectLineItem_IDasId,LineItem_CodeasCode,LineItem_QuantityasQuantity,LineItem_PriceasPricefromLineItemswhereOrder_ID=@param0] 2005-06-0801:39:42,316[3872]DEBUGIBatisNet.DataMapper.Commands.DefaultPreparedCommand[]-Parameters:[@param0=[value,1]] 2005-06-0801:39:42,316[3872]DEBUGIBatisNet.DataMapper.Commands.DefaultPreparedCommand[]-Types:[@param0=[Int32,System.Int32]] 2005-06-0801:39:42,316[3872]DEBUGIBatisNet.DataMapper.SqlMapSession[]-CloseConnection\to \SQLServer7.0/2000,providerV1.0.5000.0inframework.NETV1.1\2005-06-0801:39:42,316[3872]DEBUGIBatisNet.DataMapper.LazyLoadList[]-Endofproxyfiedcalltoget_Count 七、数据映射(DataMap)7.1数据映射定义文件 下面是一个简单的数据映射定义文件: (Order_Id,LineItem_LineNum,Item_Id,LineItem_Quantity,LineItem_UnitPrice)VALUES (#Order.Id#,#LineNumber#,#Item.Id#,#Quantity#,#Item.ListPrice#) 对于上面这段指令映射定义,映射机制从LineItem实例中提取所需的属性值,然后和数据操作指令合并成可执行的正确语句,有数据提供者在数据库中运行。通过向映射框架API直接传递对象实例,就可以完成自动匹配。调用例句: C# Mapper.Instance().Insert(\下面给出一个复杂些的数据映射例子: xmlns:xsi=\http://www.w3.org/2001/XMLSchema-instance\>
好文档 - 专业文书写作范文服务资料分享网站