iBATIS.net开发的第一个web实例

这是我用iBATIS.net开发的第一个web实例,参考网上资料自己改进实现的。其实,除了配置和写sql之外,调用iBATIS.net对于开发人员是非常省事的。下面我会从配置和使用过程中遇到的问题讲解我的使用心得。
1、如何使用iBATIS.net
(1)、新建一个解决方案叫IBatisNetDemo,里面包含两个工程,一个是IBatisWeb,你可以把它理解为三层中的 表现层;还有一个工程叫IBatisNetDemo,它主要是引用iBatis.net的相关类库实现业务逻辑的,所以你也可以把它当做 业务逻辑层来对待。至于数据层在哪里?读者可能已经想到,iBatis.net已经帮我们封装好了数据处理底层的东东,所以iBATIS.net的几个相关类库我们就完全可以理解为 数据层。这样,一个经典三层架构就搭建好了。
(2)、IBatisNetDemo工程下,我们引用了IBatisNet.Common和IBatisNet.DataMapper两个类库(关于公共类库,放在一个公共文件夹 Sharelibs下,文章最下面我会给出Demo下载链接),接着按照一般步骤写配置文件和实现代码(我会在“注意点”里详细讲解这个过程)。
(3)IBatisWeb工程是一个web项目,它引入了IBatisNetDemo工程。在web.config文件中,我们配置了日志管理相关的东东,所以还需要引入其他类库(可以查看web工程下bin文件夹下的文件)。其中log.txt文件你可以查看你自己机器上iBatis.net工作情况,对于维护和调试是有参考意义的。在页面(Default.aspx)中,你可以直接调用业务逻辑中的增删改查等操作。
下面是第一次加载网页的运行结果:

2、业务逻辑层的一些注意点
IBatisNetDemo工程是我们三层里的业务逻辑层,这里我们在微软的测试数据库Northwind中新建一个表Person来做一个业务逻辑测试。在引用了IBatisNet.Common和IBatisNet.DataMapper两个类库后,我们按部就班地要写配置和业务实现代码:
(1)、新建表Person
工程中添加Script文件夹,Person.sql如下:
ContractedBlock.gif ExpandedBlockStart.gif Code
USE [Northwind]
GO
/****** Object:  Table [dbo].[Person]    Script Date: 07/25/2009 20:29:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Person](
    
[PER_ID] [int] IDENTITY(1,1NOT NULL,
    
[PER_FIRST_NAME] [nvarchar](40) COLLATE Chinese_PRC_CI_AS NOT NULL,
    
[PER_Last_NAME] [nvarchar](40) COLLATE Chinese_PRC_CI_AS NOT NULL,
    
[PER_BIRTH_DATE] [datetime] NULL,
    
[PER_WEIGHT_KG] [float] NULL,
    
[PER_HEIGHT_M] [float] NULL,
 
CONSTRAINT [PK_Person] PRIMARY KEY CLUSTERED 
(
    
[PER_ID] ASC
ON [PRIMARY]
ON [PRIMARY]
(2)、新添Domain文件夹,添加一个实体类Person.cs(读者可参考demo);
(3) 定义实体对应的xml文件:Person.xml(新添Map文件夹,在Map下添加SqlClient文件夹);
(4)可用的实体业务操作
新添Service文件夹,建BaseService.cs和PersonService.cs文件。BaseService初始化一个IBatis.Net下的SqlMapper对象;PersonService继承自BaseService,用SqlMapper对象实例实现增删改查等业务。
(5)三个.config文件说明
a、providers.config  这个直接拷贝到根目录,该文件定义各种数据库的驱动,包括SqlServer, Oracle, MySQL, PostgreSQL, DB2 and OLEDB, ODBC 等;
b、database.config
ContractedBlock.gif ExpandedBlockStart.gif Code
<?xml version="1.0" encoding="utf-8" ?> 
<settings>
    
<!--   User application and configured property settings go here.-->
    
<!-- To run tests, create a file named DataBase.config 
         with your own value for datasource.
         (don't included it in the solution and don't commit it in SVN)
    
-->
    
<add key="userid" value="sa" />
    
<add key="password" value="jeffwong" />
    
<add key="database" value="Northwind" />
    
<add key="datasource" value=".\sqlexpress" />
    
<add key="selectKey" value="select @@IDENTITY as value" />
    
<add key="directory" value="Maps" />
    
<add key="useStatementNamespaces" value="false" />
</settings>
毫无疑问,是数据库相关配置文件,笔者的数据库还是sql2005Express版,读者可根据自己数据库的实际情况修改。
c、sqlmap.config
ContractedBlock.gif ExpandedBlockStart.gif Code
<?xml version="1.0" encoding="utf-8"?>
<sqlMapConfig xmlns="http://ibatis.apache.org/dataMapper" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >

  
<!-- Rem : If used via a DataAccess context, properties tag will be ignored 
  <properties resource="http://www.cnblogs.com/database.config"/> 
-->
  
<properties embedded="database.config, IBatisNetDemo"/>
  
<settings>
    
<setting useStatementNamespaces="${useStatementNamespaces}"/>
    
<setting cacheModelsEnabled="true"/>
    
<setting validateSqlMap="false"/>
  
</settings>
 
  
<!-- Optional if resource -->
  
<providers embedded="providers.config,IBatisNetDemo"/>
  
<!-- ==== SqlClient configuration =========    -->
  
<!-- Rem : If used via a DataAccess context, database tag will be ignored -->
  
<database>
    
<!-- Optional ( default ) -->
    
<provider name="sqlServer1.1"/>
    
<dataSource name="iBatisNet" connectionString="data source=${datasource};database=${database};user id=${userid};password=${password};connection reset=false;connection lifetime=5; min pool size=1; max pool size=50"/>
  
</database>

  
<sqlMaps>
    
<!-- user via embedded-->
    
<sqlMap embedded="Map.SqlClient.Person.xml,IBatisNetDemo"/>
  
</sqlMaps>
</sqlMapConfig>
这三个.config文件是很重要的,尤其是sqlmap.config,它要和实体类相关类库,xml等关联起来,所以需要小心编写。

下载地址: Demo下载
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值