IBatis.Net学习笔记三--两种常用的DAO

在IBatis中我们可以灵活的选择DAO类型,也就是可以在底层选用不同的数据库操作方式。有常规方式、配置文件的方式、Hibernet的方式等:
1、常规方式
和我们之前的ADO.NET开发较为类似,都是将sql语句写在cs代码中进行调用:
首先通过配置文件初始化:
None.gif             DomDaoManagerBuilder builder  =   new  DomDaoManagerBuilder();
None.gif            builder.Configure(
" dao "   +   " _ "   +  ConfigurationManager.AppSettings[ " database " +   " _ "
None.gif                
+  ConfigurationManager.AppSettings[ " providerType " +   " .config " );
None.gif            daoManager 
=  DaoManager.GetInstance( " SimpleDao " );        
None.gif
相对应的配置文件如下:
None.gif      < context id = " SimpleDao "   default = " true " >
None.gif        
< properties resource = " ../../database.config " />
None.gif        
None.gif        
<!--   ====  SqlClient configuration ( default  provider)  =========      -->
None.gif        
< database >
None.gif            
<!--  Optional (  default  )  -->
None.gif            
< provider name = " sqlServer1.1 " />
None.gif            
< 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 " />
None.gif        
</ database >
None.gif        
None.gif        
< daoFactory >
None.gif            
< dao  interface = " IBatisNet.DataAccess.Test.Dao.Interfaces.IAccountDao, IBatisNet.DataAccess.Test "  implementation = " IBatisNet.DataAccess.Test.Dao.Implementations.Ado.AccountDao, IBatisNet.DataAccess.Test " />
None.gif        
</ daoFactory >
None.gif    
</ context >
然后在对应的,比如AccountDao中写具体的查询sql等

2、配置方式
将sql语句放在配置文件中,书写和修改较灵活, 这也是比较常用的方式
首先通过配置文件初始化:
None.gif             DomDaoManagerBuilder builder  =   new  DomDaoManagerBuilder();
None.gif            builder.Configure(
" dao "   +   " _ "   +  ConfigurationManager.AppSettings[ " database " +   " _ "
None.gif                
+  ConfigurationManager.AppSettings[ " providerType " +   " .config " );
None.gif            daoManager 
=  DaoManager.GetInstance( " SqlMapDao " );        
相对应的配置文件如下:
None.gif      < context id = " SqlMapDao " >
None.gif        
< properties resource = " ../../database.config " />
None.gif        
<!--   ====  SqlClient configuration  =========      -->
None.gif        
< database >
None.gif            
< 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 " />
None.gif        
</ database >         
None.gif        
None.gif        
< daoSessionHandler id = " SqlMap " >
None.gif            
<!--               -->
None.gif            
< property name = " resource "  value = " SqlMap_MSSQL_SqlClient.config " />
None.gif
None.gif            
<!--   < property name = " url "  value = " E:\Projet\iBatis\trunk\cs\mapper\IBatisNet.DataAccess.Test\bin\Debug\SqlMap_MSSQL_SqlClient.config " />
None.gif            
-->
None.gif            
<!--  
None.gif            
< property name = " embedded "  value = " bin.Debug.SqlMap_MSSQL_SqlClient.config, IBatisNet.DataAccess.Test " />  
None.gif            
-->
None.gif        
</ daoSessionHandler >
None.gif        
None.gif        
< daoFactory >
None.gif            
< dao  interface = " IBatisNet.DataAccess.Test.Dao.Interfaces.IAccountDao, IBatisNet.DataAccess.Test "  implementation = " IBatisNet.DataAccess.Test.Dao.Implementations.DataMapper.AccountDao, IBatisNet.DataAccess.Test " />
None.gif        
</ daoFactory >
None.gif    
</ context >
然后可以将每一张表的sql语句单独放在一个配置文件中,比如:
None.gif          < select id = " GetAccountsDynamic "  resultMap = " account-result "  parameterClass = " Hashtable "   >
None.gif            select top $MaximumAllowed$ 
*  from Accounts
None.gif            
< dynamic prepend = " where " >
None.gif                    
< isParameterPresent >
None.gif                    
< isNotEmpty prepend = " and "  property = " FirstName "   >
None.gif                            Account_FirstName LIKE 
' %$FirstName$% '
None.gif                    
</ isNotEmpty >
None.gif                    
< isNotEmpty prepend = " and "  property = " LastName "   >
None.gif                            Account_LastName LIKE 
' %$LastName$% '
None.gif                    
</ isNotEmpty >
None.gif                    
< isNotEmpty prepend = " and "  property = " EmailAddress "    >
None.gif                            Account_Email LIKE 
' %$EmailAddress$% '
None.gif                    
</ isNotEmpty >
None.gif                    
</ isParameterPresent >
None.gif                
</ dynamic >
None.gif                order by Account_LastName
None.gif        
</ select >

3、使用Hibernet方式
也就是使用Hibernet的数据库操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值