上一页 1 ··· 49 50 51 52 53 54 55 56 57 ··· 132 下一页
摘要: 其实调用方式比较简单,主要也就是两种类型的存储过程:1、更新类型的存储过程2、查询类型的存储过程下面就来看看具体的调用方式:1、更新类型的存储过程sp_InsertAccount:CREATEPROCEDURE[dbo].[sp_InsertAccount]--Addtheparametersforthestoredprocedurehere@Account_IDint,@Account_FirstNamevarchar(32),@Account_LastNamevarchar(32)ASBEGINinsertintoaccounts(account_id,account_firstname, 阅读全文
posted @ 2011-05-21 15:39 awp110 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 在IBatis.Net中可以通过配置文件动态选择数据库、动态选择Dao对象。Dao对象也就是操作数据库的类,通过配置文件我们可以选择DataMapper的方式、Ado的方式、NHibernet的方式以前其他第三方的方式来操作数据库。有利于系统的灵活性和可扩展性。通过分析动态选择Dao的设计可以加深对IBatis.Net的理解,更好的使用它,同时也可以借鉴它的好的设计模式,应用到我们的程序开发中去。源代码是最好的分析方式,下面是一些重点代码和说明:前提:需要在dao.config中配置:<daoFactory><daointerface="GSpring.Dao.In 阅读全文
posted @ 2011-05-21 15:38 awp110 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 在项目开发过程中,查询占了很大的一个比重,一个框架的好坏也很多程度上取决于查询的灵活性和效率。在IBatis.Net中提供了方便的数据库查询方式。在Dao代码部分主要有两种方式:1、查询结果为一个对象:ISqlMappersqlMap=sqlMapDaoSession.SqlMap;return(Account)sqlMap.QueryForObject("GetAccountViaColumnName",accountID);2、查询结果为一个列表:ISqlMappersqlMap=sqlMapDaoSession.SqlMap;return(ArrayList)sqlM 阅读全文
posted @ 2011-05-21 15:37 awp110 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 在上一篇文章中我提到了三种方式,都是各有利弊:第一种方式当数据关联很多的情况下,实体类会很复杂;第二种方式比较灵活,但是不太符合OO的思想(不过,可以适当使用);第三种方式最主要的问题就是性能不太理想,配置比较麻烦。下面是第四种多表查询的方式,相对第二种多了一点配置,但是其他方面都很好(当然可能还有其他更好地解决方法,希望能多提宝贵意见-_-)例子还是一样:两张表Account和Degree,使用Account_ID关联,需要查出两张表的所有纪录首先:修改实体类,增加以下属性:privateDegree_degree;publicDegreeDegree{get{return_degree;} 阅读全文
posted @ 2011-05-21 15:37 awp110 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 在IBatis中提供了数据库缓存的模式,可以提高访问效率。对于一些不常更新的表可以直接利用IBatis的缓存方式。要使用IBatis的数据库缓存,只要利用配置文件就可以了,实现起来比较简单:<selectid="GetCachedAccountsViaResultMap"resultMap="account-result"cacheModel="account-cache">select*fromAccountsorderbyAccount_ID</select>最主要的就是cacheModel="a 阅读全文
posted @ 2011-05-21 15:36 awp110 阅读(237) 评论(1) 推荐(0) 编辑
摘要: 在IBatis中我们可以灵活的选择DAO类型,也就是可以在底层选用不同的数据库操作方式。有常规方式、配置文件的方式、Hibernet的方式等:1、常规方式和我们之前的ADO.NET开发较为类似,都是将sql语句写在cs代码中进行调用:首先通过配置文件初始化:DomDaoManagerBuilderbuilder=newDomDaoManagerBuilder();builder.Configure("dao"+"_"+ConfigurationManager.AppSettings["database"]+"_"+ 阅读全文
posted @ 2011-05-21 15:35 awp110 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 最近这段时间一直在用IBatis来进行开发。现在把这段时间的一些开发心得写出来,跟大家一起分享。首先,IBatis可以说转变了我以前的一些思想。我们以前开发项目的时候,总是先建立好数据库,分析清楚表与表之间的关系,才开始根据这些表进行实际的开发。实际上并没有完全把面向对象的优势展现出来。现在的使用IBatis。顺序可以是这样,首先项目经理会分析整个项目,可以分成为几个对象,每个对象具有什么属性,什么方法。同时会用visio画出UML图来。这样可以说把面向对象的优势完全体现出来了。 然后程序员会根据UML图来操作对象,实现每个对象的属性和方法。这样就可以完全脱离数据库,去考虑程序的问题。这种开发 阅读全文
posted @ 2011-05-21 15:33 awp110 阅读(193) 评论(0) 推荐(0) 编辑
摘要: iBatis中的动态查询还是比较好用的如果想深入学习,可以参考 Manning.iBATIS.in.Action.Jan.2007下面给出几个例子和dtd定义:<select id="selectDispatchedKey" parameterClass="KeyAndKeyFlowInfo" resultMap="KeyAndKeyFlowResult"> select distinct KEY_ID, USER_ID, INITIATOR, INIT_DATE, INITIATOR_EMAIL, SGS_KEY.BRA 阅读全文
posted @ 2011-05-21 15:22 awp110 阅读(651) 评论(0) 推荐(0) 编辑
摘要: iBatis解决sql注入(1) ibatis xml配置:下面的写法只是简单的转义 name like '%$name$%' (2) 这时会导致sql注入问题,比如参数name传进一个单引号“'”,生成的sql语句会是:name like '%'%' (3) 解决方法是利用字符串连接的方式来构成sql语句 name like '%'||'#name#'||'%' (4) 这样参数都会经过预编译,就不会发生sql注入问题了。(5) #与$区别: #xxx# 代表xxx是属性值,map里面的key或者 阅读全文
posted @ 2011-05-21 14:59 awp110 阅读(913) 评论(0) 推荐(0) 编辑
摘要: sqldbxoracleibatis 阅读全文
posted @ 2011-05-20 17:16 awp110 阅读(93) 评论(0) 推荐(0) 编辑
上一页 1 ··· 49 50 51 52 53 54 55 56 57 ··· 132 下一页