摘要: 最近有人问我怎么获取存储过程的output的参数值,由于我最近没有用Ibatis.net,所以就从文档中找到的param的xml,也就没有在意,但后来有人说调不通,今天早上又收到一份留言,所以我早上作了测试!也出现获取不到数据的问题,但最后还是解决了!我的测试环境是sqlserver2005/vs2005/ibatis.net2.0如下:procedure:createprocsp_output(@testParamintoutput)asbeginset@testParam=10endgoxml:<parameterMaps><parameterMapid="se 阅读全文
posted @ 2011-04-06 19:49 永不放弃-Jack wu 阅读(1289) 评论(0) 推荐(0) 编辑
摘要: 其实调用方式比较简单,主要也就是两种类型的存储过程: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-04-06 19:42 永不放弃-Jack wu 阅读(776) 评论(0) 推荐(0) 编辑
摘要: Castle是另外一个框架,包含了AOP、IOC、ORM等多个方面,其中的Castle.DynamicProxy可以实现动态代理的功能,这个也是很多框架的基础。在IBatis.Net中就是使用了Castle.DynamicProxy来实现数据库连接等动态操作的。同时在NHibernet等其他框架中也使用到了这个技术。下面我通过一个简单例子来看一下如何在我们的代码中调用Castle.DynamicProxy:一般情况下要有三个类:1、接口类:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceGSpring. 阅读全文
posted @ 2011-04-06 19:40 永不放弃-Jack wu 阅读(671) 评论(0) 推荐(0) 编辑
摘要: 在IBatis.Net中可以通过配置文件动态选择数据库、动态选择Dao对象。Dao对象也就是操作数据库的类,通过配置文件我们可以选择DataMapper的方式、Ado的方式、NHibernet的方式以前其他第三方的方式来操作数据库。有利于系统的灵活性和可扩展性。通过分析动态选择Dao的设计可以加深对IBatis.Net的理解,更好的使用它,同时也可以借鉴它的好的设计模式,应用到我们的程序开发中去。源代码是最好的分析方式,下面是一些重点代码和说明:前提:需要在dao.config中配置:<daoFactory><daointerface="GSpring.Dao.In 阅读全文
posted @ 2011-04-06 19:36 永不放弃-Jack wu 阅读(585) 评论(0) 推荐(0) 编辑
摘要: 在上一篇文章中我提到了三种方式,都是各有利弊:第一种方式当数据关联很多的情况下,实体类会很复杂;第二种方式比较灵活,但是不太符合OO的思想(不过,可以适当使用);第三种方式最主要的问题就是性能不太理想,配置比较麻烦。下面是第四种多表查询的方式,相对第二种多了一点配置,但是其他方面都很好(当然可能还有其他更好地解决方法,希望能多提宝贵意见-_-)例子还是一样:两张表Account和Degree,使用Account_ID关联,需要查出两张表的所有纪录首先:修改实体类,增加以下属性:privateDegree_degree;publicDegreeDegree{get{return_degree;} 阅读全文
posted @ 2011-04-06 19:34 永不放弃-Jack wu 阅读(545) 评论(1) 推荐(0) 编辑
摘要: 在项目开发过程中,查询占了很大的一个比重,一个框架的好坏也很多程度上取决于查询的灵活性和效率。在IBatis.Net中提供了方便的数据库查询方式。在Dao代码部分主要有两种方式:1、查询结果为一个对象:ISqlMappersqlMap=sqlMapDaoSession.SqlMap;return(Account)sqlMap.QueryForObject("GetAccountViaColumnName",accountID);2、查询结果为一个列表:ISqlMappersqlMap=sqlMapDaoSession.SqlMap;return(ArrayList)sqlM 阅读全文
posted @ 2011-04-06 19:33 永不放弃-Jack wu 阅读(658) 评论(0) 推荐(0) 编辑
摘要: 在IBatis中提供了数据库缓存的模式,可以提高访问效率。对于一些不常更新的表可以直接利用IBatis的缓存方式。要使用IBatis的数据库缓存,只要利用配置文件就可以了,实现起来比较简单:<selectid="GetCachedAccountsViaResultMap"resultMap="account-result"cacheModel="account-cache">select*fromAccountsorderbyAccount_ID</select>最主要的就是cacheModel="a 阅读全文
posted @ 2011-04-06 19:32 永不放弃-Jack wu 阅读(545) 评论(2) 推荐(0) 编辑
摘要: 在IBatis中我们可以灵活的选择DAO类型,也就是可以在底层选用不同的数据库操作方式。有常规方式、配置文件的方式、Hibernet的方式等:1、常规方式和我们之前的ADO.NET开发较为类似,都是将sql语句写在cs代码中进行调用:首先通过配置文件初始化:DomDaoManagerBuilderbuilder=newDomDaoManagerBuilder();builder.Configure("dao"+"_"+ConfigurationManager.AppSettings["database"]+"_"+ 阅读全文
posted @ 2011-04-06 18:19 永不放弃-Jack wu 阅读(965) 评论(0) 推荐(0) 编辑
摘要: 最近这段时间一直在用IBatis来进行开发。现在把这段时间的一些开发心得写出来,跟大家一起分享。首先,IBatis可以说转变了我以前的一些思想。我们以前开发项目的时候,总是先建立好数据库,分析清楚表与表之间的关系,才开始根据这些表进行实际的开发。实际上并没有完全把面向对象的优势展现出来。现在的使用IBatis。顺序可以是这样,首先项目经理会分析整个项目,可以分成为几个对象,每个对象具有什么属性,什么方法。同时会用visio画出UML图来。这样可以说把面向对象的优势完全体现出来了。 然后程序员会根据UML图来操作对象,实现每个对象的属性和方法。这样就可以完全脱离数据库,去考虑程序的问题。这种开发 阅读全文
posted @ 2011-04-06 18:01 永不放弃-Jack wu 阅读(603) 评论(0) 推荐(0) 编辑
摘要: Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。 你曾经需要应用执行一个任务吗?这个任务每天或每周星期二晚上11:30,或许仅仅每个月的最后一天执行。一个自动执行而无须干预的任务在执行过程中如果发生一个严重错误,应用能够知到其执行失败并尝试重新执行吗?你和你的团队是用.NET编程吗?如果这些问题中任何一个你回答 阅读全文
posted @ 2011-04-06 17:55 永不放弃-Jack wu 阅读(1209) 评论(0) 推荐(0) 编辑
摘要: 什么是MVC模式MVC(Model-View-Controller,模型—视图—控制器模式)用于表示一种软件架构模式。它把软件系统分为三个基本部分:模型(Model),视图(View)和控制器(Controller)。那么MVC模式和我们熟悉的WebForm模式有什么不同呢?他的各个部分又是怎样分工的呢?我们先来看一下普通的WebForm模式下,我们请求一个例如http://www.51mvc.com/blog/index.aspx的URL,那么我们的WebForm程序会到网站根目录下去寻找blog目录下的index.aspx文件,然后由index.aspx页面的CodeBehind文件(.C 阅读全文
posted @ 2011-04-06 17:53 永不放弃-Jack wu 阅读(206) 评论(0) 推荐(0) 编辑