首页 / 软件开发 / .NET编程技术 / IBatisNet.DataMapper 1.6.1.0应用之iBatis.Net简单三层Demo & 应用场景
IBatisNet.DataMapper 1.6.1.0应用之iBatis.Net简单三层Demo & 应用场景2010-09-24 博客园 一舟笔者所在企业准备要用iBatis.Net来做数据访问,于是有了这篇随笔。在示例中,为了方便起见,前台的数据绑定采用数据源。通过这篇随笔,可以让还未接触iBatis.Net又计划学习它的人有一个快速的了解和上手!首先介绍Solution的架构,一共分四个项目:Web :前台应用; BLL :业务处理层,如果嫌麻烦,可以再进一步抽象出来,然后将代码放置Web层的aspx.cs里面;Model :这个就不多说了,地球人都知道(数据实体类)SqlMaps:资源类,把配置文件和sql mapper文件全部打包起来。二个文件夹:Include :iBatis.Net架构的dll文件Log :放置log文件的文件夹,在web.config里配置:<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="../Log/log.txt"/>
在这里,主要介绍的就是SqlMaps项目.SqlMaps项目文件介绍:sqlmap.config:iBatis.Net架构最最重要的配置文件,里面主要有properties,Provider,Database,sqlMaps配置,这个不用多介绍,一看便知。另外,这篇随笔帮助大家入门,如果想要详细理解每个参数的意义,建议去看iBatis.Net的帮助手册。database.config :顾名思义,数据库连接的配置文件,这个文件是准们为sqlmap.config里的properties准备的,你可以改成其他的名称也可以,甚至可以不要。见sqlmap.config里的配置:<properties embedded="database.config,Service.SqlMaps"/>providers.config:iBastis.Net自带的,不需要修改。MapSqlClientPerson.xml:这个就是传说中的sql Mapper文件,其位置配置在sqlmap.config里:<sqlMaps>
<!-- user via embedded-->
<sqlMap embedded="Map.SqlClient.Person.xml,Service.SqlMaps"/>
</sqlMaps>
它支持:存儲過程Inline SQL動態SQLORM5.CodeMyBatis.cs:专门用来初始化IBatisNet.DataMapper.ISqlMapper的处理类(因为它跟配置有关,所以也打包起来)。在这里,加入了支持输出DataTable和DataSet。另外,当输出为DataTable或者DataSet时,Person.xml里的resultMaps就不起作用,所以sql语句就要这么配置:<select id="SelectAllPerson2" resultMap="SelectAllResult">
select
PER_ID AS Id,
PER_FIRST_NAME AS FirstName,
PER_LAST_NAME AS LastName,
PER_BIRTH_DATE AS BirthDate,
PER_WEIGHT_KG AS WeightInKilograms,
PER_HEIGHT_M AS HeightInMeters
from PERSON
<dynamic prepend="WHERE">
<isParameterPresent>
PER_FIRST_NAME LIKE #FirstName#+"%"
</isParameterPresent>
</dynamic>
</select>
建议实体类的属性和数据库表栏位保持一致,这样大家都省心!6.Script :示例中用到的表和数据的sql语句。