iBatisnet系列(二) 配置运行环境和日志处理

http://hjf1223.cnblogs.com/archive/2006/04/24/383119.aspx

刚爬完鼓山回来,想到这篇刚刚开始,不敢怠慢,洗完澡休息一下就到电脑旁边来了。现在我开始介绍一下iBatis的配置和日志处理吧。

iBatis基本的运行环境配置主要由两个文件组成,分别是SqlMap.config和Provider.config。它们是必需的两个配置文件,基中SqlMap.config的功能类似于web.config或者app.config,是iBatis核心的配置文件,它的存放路径也跟应用程序配置文件一样,必须放在应用程序的运行目录下并且它的文件名是保留的,不可改变的。而Provider.config是一个数据驱动提供类的配置,它的文件名是可以随意改变的,因为通过SqlMap.config的一个配置节可以配置它的引用。

SqlMap.config包括以下一些主要的配置节,根据需要,有的配置节并不是必须的:

1. properties :可以根据需要配置一些常量属性。如果这些属性有很多的话可以单独写一个文件里面,再通过resource(或url, embedded分别是引用url和编译在程序中的资源文件)属性引用进来。如:

<properties resource="../../database.config">

<property key="useStatementNamespaces" value="false"/>

</properties>

这个配置节是可选的。

2. settings:包括有三个配置段:

<setting useStatementNamespaces="${useStatementNamespaces}"/>

<setting cacheModelsEnabled="true"/>

<setting validateSqlMap="false"/>

useStatementNamespaces:在文档中说明它的作用是配置在使用语句ID的时候要不要加命名空间,例中${useStatementNamespaces}就是使用properties中的一个属性,默认是false。

cacheModelsEnabled 是配置要不要启用iBatis的缓存模型,默认是true。

validateSqlMap 是配置要不要启示验证映射文件,默认是false。

3. providers :配置数据驱动提供类配置文件的路径和文件名。

<providers resource="providers.config"/>

4. database : 数据库的信息,包括使用哪些数据库驱动和数据连接字符串的配置。

<database>

<!-- Optional ( default ) -->

<provider name="sqlServer1.1"/>

<dataSource name="iBatisNet"

connectionString=""/>

</database>

5. alias : 类型别名的配置,为了使用更方便的使用类(类名更短),就需在这里进行别名的配置。

<alias>

<typeAlias alias="ArrayList" type="System.Collections.ArrayList,mscorlib"/>

</alias>

6. typeHandlers :这个就相对比较复杂些了,到目前我也没有使用到。从字面上理解,它是一个类型的处理器,它的作用是当你使用的数据库当中有iBatis不支持或不认识的字段(或者不希望默认的处理方式),那就可以为它取一个名字,并且指定对应的.NET类型来处理它。

<typeHandlers>

<typeHandler type="bool" dbType="Varchar" callback="OuiNonBool"/>

</typeHandlers>

7. sqlMaps :用来包含当前已经写好的,并且需要用到的数据类映射文件。

<sqlMaps>

<!-- <sqlMap url="E:/Projet/iBatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/${directory}/MSSQL/SqlClient/Account.xml"/>   -->

<sqlMap resource="Mappers/ContentMapper.xml"/>

<!-- Rem : If used as embbeded Resources, use

<sqlMap embedded="Maps.MSSQL.SqlClient.Account.xml, IBatisNet.DataMapper.Test"/>-->

</sqlMaps>

以上就是Sqlmap.config的基本内容了。注意,以上凡是涉及到引用外部文件的都支持resouce,url,embedded 三种方式。

Provider.config的配置类很简单,在默认的Provider.config中已经有很多不同数据库的数据驱动,而在SqlMapp.config的database配置的provider属性就是使用Provider.config中已有的不同驱动中的一个。以下是添加一个Ado.net 2.0 数据访问驱动:

<provider

name="sqlServer2.0"

description="Microsoft SQL Server 7.0/2000/2005, provider V2.0.0.0 in framework .NET V2.0"

enabled="true"

default="true"

assemblyName="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" connectionClass="System.Data.SqlClient.SqlConnection"

commandClass="System.Data.SqlClient.SqlCommand"

parameterClass="System.Data.SqlClient.SqlParameter"

parameterDbTypeClass="System.Data.SqlDbType"

parameterDbTypeProperty="SqlDbType"

dataAdapterClass="System.Data.SqlClient.SqlDataAdapter"

commandBuilderClass="System.Data.SqlClient.SqlCommandBuilder"

usePositionalParameters="false"

useParameterPrefixInSql="true"

useParameterPrefixInParameter="true"

parameterPrefix="@"/>

OK,以上就是SqlMap.config和Provider.config的基本内容。下面我来介绍一下如果利用log4net来记录iBatisnet的一些运行日志记录。这也是我当初花了很多的时间才解决的一个问题,因为记录这些日志太重要了,它可以记录下每次生成并执行的SQL语句,对我们排除配置错误有非常重大的意义。而如果你是使用最新版的(当前是1.3.0),但是文档使用的是1.2.1的话,那可能你怎么折腾都无法搞出结果来。

按照1.2.1的文档介绍那样在web.config(app.config) 加上合适的配置节后,然后把log4net.dll和IBatisNet.Common.Logging.Log4Net.dll拷到bin目录下后,你可能会认为跟文档介绍的一样,生成一个log.txt,并记录下日志。但事实不是这样的,在1.3.0的版本中还需要再加上一个配置节组:

<sectionGroup name="iBATIS">

<section name="logging" type="IBatisNet.Common.Logging.ConfigurationSectionHandler, IBatisNet.Common" />

</sectionGroup>

配置组的配置值如下:

<iBATIS>

<logging>

<!--<logFactoryAdapter type="IBatisNet.Common.Logging.Impl.ConsoleOutLoggerFA, IBatisNet.Common">

<arg key="showLogName" value="true" />

<arg key="showDataTime" value="true" />

<arg key="level" value="ALL" />

<arg key="dateTimeFormat" value="yyyy/MM/dd HH:mm:ss:SSS" />

</logFactoryAdapter>    -->

<logFactoryAdapter type="IBatisNet.Common.Logging.Impl.Log4NetLoggerFA, IBatisNet.Common.Logging.Log4Net">

<arg key="configType" value="inline" />

</logFactoryAdapter>

</logging>

</iBATIS>

经过以上的配置后,再运行程序,就会创建log.txt并且记录日志了。注意:即使是按以上的配置后,有可能还是无法记录日志,那就可能是log4net.dll和IBatisNet.Common.Logging.Log4Net.dll的中的一个或两个没有拷到bin目录,正常情况下,我们不需引用这两个程序集,只需把它们拷到运行目录下,即使你需要记录日志,但找不到他们,程序仍然能正常执行而不会抛出异常,如果你没有经验的话,解决这个问题可能需要你很多的时间。

以上就是今天要介绍的内容了,Hope this helps。

附注:

1. 参考资料:Data Mapper Guide-1.2.1.chm ;DataMapper-1.2.1.chm

2. 配置文件智能提示:把provider.xsd SqlMap.xsd SqlMapConfig.xsd 三个文件拷贝到

VS 2005 :C:\Program Files\Microsoft Visual Studio 8\Xml\Schemas (安装目录)

VS 2003 :C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Packages\schemas\xml   (安装目录)下,就可以在VS IDE下编写配置文件时得到Intellisense的帮助,前提是配置的文件的第一个节点写正确的命名空间和XSD文件。

3.DEMO下载。使用VS 2005 ,你可能需要安装有免费版本的SQL 2005。

阿不 http://hjf1223.cnblogs.com

时间: 2024-07-30 08:14:40

iBatisnet系列(二) 配置运行环境和日志处理的相关文章

eclipse配置运行环境

java开发初学者,相当于做笔记了: 新建web项目后,想要验证配置是否正确,需要配置运行环境:窗口-->首选项  如下 添加本地tomcat的安装目录: 再在web项目构建路径,添加对应的tomcat:

QGIS(PYTHON3.5、QT5.7.1、QGIS3)系列二次开发环境

QGIS(PYTHON3.5.QT5.7.1.QGIS3系列二次开发环境,所有环境以虚拟机方式提供,以便研究或直接使用. 具体包括:独立应用二次开发环境(WINDOWS,LINUX):android二次开发:独立应用PYTHON二次开发环境(WINDOWS,LINUX):插件开发环境(PYTHON,C++). 另外,我们承接基于QGIS的二次开发.插件开发整理:承接QGIS平台级功能的定制修改:承接QGIS的基本学习资料https://user.qzone.qq.com/2665146134/i

Java系列学习(二)-配置开发环境

1.设置系统环境变量 1.1.设置JDK的Path路径 作用:通过path环境变量,将JDK安装目录下的bin目录配置到path变量下,可使javac指令和java指令在任意目录下运行   方法一:直接在Path上设置 路径值 方法二(推荐):通过引用变量名的方式 来设置 通过%xxx% 的方式,将JAVA_HOME 引用到Path中 1.2.配置classpath环境变量 作用:classpath目录中的.class文件,可以在任意目录下运行 注:[java程序,在编译后就是一个*.class

node配置运行环境变量;

node express 在开发环境和生产环境运行的代码是不一样的, 通常是先配置好的,在开发环境运行一套代码,在生产环境运行另一套代码, 开发环境 development, 生产环境production console.log(app.get('env'));默认输出development 在生产环境时保证app.get('env')输出 production 这样就能运行不同的代码了 关键是怎么在生产环境中,使app.get('env')输出 production , 两种手动方法: 第一种

Flink1.6系列之—分布式运行环境

Distributed Runtime Environment(分布式运行环境) Tasks and Operator Chains 在分布式执行情况下,Flink将operator subtasks 链接到一起,形成任务(task).每个任务(subtask)由一个线程执行.将operator subtasks链接到任务中是一个好处:它减少了线程到线程的切换和缓冲的开销,并在减少延迟的同时提高了总体吞吐量.链接行为是可以进行配置的;有关详细信息,请参阅此文档. 下图中有5个子任务,因此就有5个

Vector Packet Processing (二)配置开发环境

本篇主要是介绍如何配置VPP的编译开发环境,具体配置请参考VPP开发文档:https://wiki.fd.io/view/VPP/Setting_Up_Your_Dev_Environment 搭建开发环境 首先我们需要在主机上安装Vagrant软件和虚拟机,并在虚拟化里面设置编译开发环境,当然也可以不在虚拟机里面直接在主机host上来配置VPP的编译开发环境也是一样的,我这里面主要是刚开始使用对VPP还不熟悉的时候还是老老实实的按照官方文档上面的步骤来吧. 默认的配置是支持VMWare和Vir

7.springboot配置文件配置运行环境、放置位置

1.properties方式 dev test prod开发 测试 生产环境数据 多Profile文件 默认application.properties 可以切换环境: spring.profiles.active=dev 2.yml方式 yml支持多文档块环境 yaml用---可以把一个文档"拆分"成多个文档 #yaml文档块模式 server: port: 8081 spring: profiles: activemq: dev --- server: port: 8083 spr

大内存( Very Large Memory)和 大页( HugePages)系列二--配置大页

在linux 平台如何配置hugepages 名词解释: memlock -  max locked-in-memory address space (KB) 1. 配置 /etc/security/limits.conf memlock 参数 memlock 略小于物理内存 大于SGA ,假设物理内存为64G 可以这么配置 vi /etc/security/limits.conf * soft memlock 60397977 * hard memlock 60397977 2. 验证orac

(二)配置Apollo环境

一.环境要求 虚拟机内存要在2g以上 jdk1.8以上 建议数据库在5.7以上,如果版本过低,数据库在执行Apollo结构时,默认不能支持在一个表中有两个时间戳类型字段,所以建议大家使用mysql在5.7以上 二.下载Apollo 下载地址 https://github.com/ctripcorp/apollo 下载下来后,有两个压缩包: apollo-master 源码和依赖jar包(建议打到本地maven仓库) apollo-build-scripts-master 整个Apollo环境的压