iBatisnet系列(二) 配置运行环境和日志处理
2010-04-13 11:08
274 查看
刚爬完鼓山回来,想到这篇刚刚开始,不敢怠慢,洗完澡休息一下就到电脑旁边来了。现在我开始介绍一下
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
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
相关文章推荐
- iBatisnet系列(二) 配置运行环境和日志处理
- iBatisnet系列(二) 配置运行环境和日志处理
- iBatisnet系列(二) 配置运行环境和日志处理
- iBatisnet系列(二) 配置运行环境和日志处理
- 使用maven profile配置运行不同环境和日志
- 配置MyEclipse的编译与运行环境和处理bad version number in .class file
- 【Android开发系列】Android开发第一步-----开发环境配置 + 运行sample
- Windows系列服务器上配置JSP运行环境,以及网站上线
- webapp系列开发之二:Dreamweaver CS6配置Phonegap运行环境介绍
- Hadoop环境搭建之一安装jdk,hadoop基本配置及运行MapReduce案例在本地模式下
- 配置Nodejs运行环境,安装grunt运行angular项目
- 【转】如何配置EditPlus中Java运行环境,运行Java程序
- hadoop开发运行环境配置及相关问题总结
- Spring Boot系列之十 日志配置
- Windows7下使用IIS7与FastCGI模块配置PHP5.3.1运行环境
- windows nginx 配置问题处理及日志分割处理
- ELK学习10_ELK系列--实时日志分析系统ELK 部署与运行中的问题汇总
- VS2010下配置OpenCV2.2运行环境
- 服务器配置jsp项目运行环境
- java运行环境的配置