千家信息网

怎么浅谈IBATIS.net中两大常用的DAO

发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,这篇文章给大家介绍怎么浅谈IBATIS.net中两大常用的DAO,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在iBATIS.中我们可以灵活的选择DAO类型,也就是可以在底层选用
千家信息网最后更新 2024年11月28日怎么浅谈IBATIS.net中两大常用的DAO

这篇文章给大家介绍怎么浅谈IBATIS.net中两大常用的DAO,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

在iBATIS.中我们可以灵活的选择DAO类型,也就是可以在底层选用不同的数据库操作方式。有常规方式、配置文件的方式、Hibernet的方式等:

1、常规方式

和我们之前的ADO.net开发较为类似,都是将sql语句写在cs代码中进行调用:

首先通过配置文件初始化:

DomDaoManagerBuilder builder = new DomDaoManagerBuilder();  builder.Configure("dao" + "_" + ConfigurationManager.AppSettings["database"] + "_"      + ConfigurationManager.AppSettings["providerType"] + ".config");  daoManager = DaoManager.GetInstance("SimpleDao");

相对应的配置文件如下:

﹤context id="SimpleDao" default="true"﹥      ﹤properties resource="../../database.config"/﹥            ﹤!-- ==== SqlClient configuration (default provider) =========    --﹥      ﹤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﹥            ﹤daoFactory﹥          ﹤dao interface="IBatisNet.DataAccess.Test.Dao.Interfaces.IAccountDao, IBatisNet.DataAccess.Test" implementation="IBatisNet.DataAccess.Test.Dao.Implementations.Ado.AccountDao, IBatisNet.DataAccess.Test"/﹥      ﹤/daoFactory﹥  ﹤/context﹥

然后在对应的,比如AccountDao中写具体的查询sql等

2、配置方式

将sql语句放在配置文件中,书写和修改较灵活,这也是比较常用的方式

首先通过配置文件初始化:

DomDaoManagerBuilder builder = new DomDaoManagerBuilder();  builder.Configure("dao" + "_" + ConfigurationManager.AppSettings["database"] + "_"      + ConfigurationManager.AppSettings["providerType"] + ".config");  daoManager = DaoManager.GetInstance("SqlMapDao");

相对应的配置文件如下:

﹤context id="SqlMapDao"﹥      ﹤properties resource="../../database.config"/﹥      ﹤!-- ==== SqlClient configuration =========    --﹥      ﹤database﹥          ﹤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﹥                    ﹤daoSessionHandler id="SqlMap"﹥          ﹤!--             --﹥          ﹤property name="resource" value="SqlMap_MSSQL_SqlClient.config"/﹥           ﹤!-- ﹤property name="url" value="E:\Projet\iBatis\trunk\cs\mapper\IBatisNet.DataAccess.Test\bin\Debug\SqlMap_MSSQL_SqlClient.config"/﹥          --﹥          ﹤!--           ﹤property name="embedded" value="bin.Debug.SqlMap_MSSQL_SqlClient.config, IBatisNet.DataAccess.Test"/﹥           --﹥      ﹤/daoSessionHandler﹥            ﹤daoFactory﹥          ﹤dao interface="IBatisNet.DataAccess.Test.Dao.Interfaces.IAccountDao, IBatisNet.DataAccess.Test" implementation="IBatisNet.DataAccess.Test.Dao.Implementations.DataMapper.AccountDao, IBatisNet.DataAccess.Test"/﹥      ﹤/daoFactory﹥  ﹤/context﹥

然后可以将每一张表的sql语句单独放在一个配置文件中,比如:

﹤select id="GetAccountsDynamic" resultMap="account-result"  parameterClass="Hashtable" ﹥      select top $MaximumAllowed$ * from Accounts      ﹤dynamic prepend="where"﹥              ﹤isParameterPresent﹥              ﹤isNotEmpty prepend="and" property="FirstName" ﹥                      Account_FirstName LIKE '%$FirstName$%'              ﹤/isNotEmpty﹥              ﹤isNotEmpty prepend="and" property="LastName" ﹥                      Account_LastName LIKE '%$LastName$%'              ﹤/isNotEmpty﹥              ﹤isNotEmpty prepend="and" property="EmailAddress"  ﹥                      Account_Email LIKE '%$EmailAddress$%'              ﹤/isNotEmpty﹥              ﹤/isParameterPresent﹥          ﹤/dynamic﹥          order by Account_LastName  ﹤/select﹥

3、使用Hibernet方式

也就是使用Hibernet的数据库操作。

那么IBATIS.net中DAO的介绍就到这里,是不是对常用DAO有所了解了呢?

关于怎么浅谈IBATIS.net中两大常用的DAO就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

方式 配置 文件 常用 语句 也就是 内容 常规 数据 数据库 更多 帮助 不同 不错 代码 兴趣 小伙 小伙伴 底层 文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全教育会不会留案底 云南网络安全示范 达梦数据库无法导入备份 大唐无双会不会停服务器 济南大学泉城学院网络技术 5g移动通讯网络技术的优点 幼儿园网络安全职责与要求 律师数据库的使用技巧 部队网络安全保密讨论发言 广电的网络技术岗位 海南游爱网络技术有限公司 天津信息化软件开发标准 龙岩网络安全技术支撑 阿联酋国家网络安全主管 敏锐科技互联网 软件开发面试问你项目怎么回答 蘑菇街服务器连接不上怎么办 云计算之网络技术学习心得 桌面软件服务器软件区别 服务器电脑端怎么切换到手机端 嵌入式软件开发的小程序 栾川探梦互联网科技有限公司 数据库表最大多少数据 软件开发公司多久实现盈利 佳木斯大学论文查重数据库 一梦江湖不记得是哪个服务器 电子商务面临的网络安全问题 微信添加好友显示服务器忙 列出数据库的表 四川服装外贸软件开发公司
0