iBatis为业务对象添加可分页方法,扩展方法,调用Oracle
2009-11-03 14:33
746 查看
以活动日志为例,打开Persistence 项目
在 interface IActionLogDao
添加接口定义
在ActionLogDao 中实现这个方法
Services项目中使用
SqlMap 的XML 要加方法的SQL配置
注意,每次调试都要关闭Asp.Net 调试器
修改该 SQLMap 的XML配置信息
先修改该子表StoComboAgent的配置
然后再为Combo的XML文件中添加如下配置
修改该SQLMap的对应内容
添加
再每个操作配置中都要加入这个属性
,startup_time
在 interface IActionLogDao
添加接口定义
/// <summary> /// 根据可用标记获取所有的日志信息(分页) /// </summary> /// <returns></returns> List<ActionLog> GetActionLogListByActivity(ActionLog al, int start, int limit);
在ActionLogDao 中实现这个方法
/// <summary> /// 根据可用标记获取所有的日志信息(分页) /// </summary> /// <returns></returns> public List<ActionLog> GetActionLogListByActivity(ActionLog al, int start, int limit) { try { Hashtable ht = new Hashtable(); ht.Add("obj", al); ht.Add("start", start * limit + 1); ht.Add("end", start * limit + limit); return base.ExecuteQueryForList<ActionLog>("ActionLog.FindAllByObjectForPage", ht) as List<ActionLog>; } catch (Exception) { throw; } }
Services项目中使用
public DataPageInfo GetActionLogListForPageData(ActionLog al, int start, int limit) { DataPageInfo obj = new DataPageInfo(); obj.DataList = base.Change2ArrayList<ActionLog>(ActionLogDao.GetActionLogListByActivity(al, start, limit)); obj.SumNum = ActionLogDao.GetSumActionLogListByActivity(al); return obj; }
SqlMap 的XML 要加方法的SQL配置
<select id="ActionLog.FindAllByObjectForPage" parameterClass="System.Collections.IDictionary" resultMap="ActionLog_result"> SELECT * FROM (SELECT ROWNUM RN, t_t.* FROM (select * from SYS_ACTION_LOG where 1=1 <!--<isNotEmpty prepend="and" property="UserId"> USER_ID like '%$obj.UserId$%' </isNotEmpty> <isGreaterThan prepend="and" property="LoginTime" compareValue="1900-01-01"> LOGIN_TIME = #obj.LoginTime# </isGreaterThan> <isNotEmpty prepend="and" property="Action"> ACTION like '%$obj.Action$%' </isNotEmpty> <isNotEmpty prepend="and" property="UserName"> USER_NAME like '%$obj.UserName$%' </isNotEmpty> <isNotEmpty prepend="and" property="UserAttribute"> USER_ATTRIBUTE like '%$obj.UserAttribute$%' </isNotEmpty>--> order by SYS_ACTION_LOG.Id desc) t_t WHERE <![CDATA[ ROWNUM <= #end# ]]> ) <![CDATA[ WHERE RN >= #start# ]]> </select>
注意,每次调试都要关闭Asp.Net 调试器
扩展一个方法,扩展一个PO,获得其中的外联表结果集合
在PO里面扩展Combo类,添加一个列表成员/// <summary> /// 套餐代理商列表 /// </summary> private List<StoComboAgent> stoComboAgentList; /// <summary> /// 套餐代理商列表 /// </summary> private List<StoComboAgent> StoComboAgentList { get { return stoComboAgentList; } set { stoComboAgentList = value; } }
修改该 SQLMap 的XML配置信息
先修改该子表StoComboAgent的配置
<select id="StoComboAgent.FindByComboId" parameterClass="int" resultMap="StoComboAgent_result" extends="StoComboAgent.FindAll"> WHERE (sto_combo_agent.combo_id = #value#) </select>
然后再为Combo的XML文件中添加如下配置
<result property="StoComboAgentList" column="ID" select="StoComboAgent.FindByComboId"/>
添加新属性
先在PO的对象中添加属性/// <summary> /// 上线时间 /// </summary> private DateTime startupTime; /// <summary> /// 上线时间 /// </summary> public DateTime StartupTime { get { return startupTime; } set { startupTime = value; } }
修改该SQLMap的对应内容
添加
<result property="StartupTime" column="Startup_Time"/>
再每个操作配置中都要加入这个属性
,startup_time
相关文章推荐
- iBatis为业务对象添加可分页方法,扩展方法,调用Oracle
- 地磅称量系统之(53)在封装对象的类库中实现包括IDataErrorInfo接口提供的所有方法和并且扩展对异常具有添加和删除功能的基本业务对象基类
- ibatis调用oracle的函数,存储过程的方法 IN 和OUT /游标
- c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错
- C#用扩展方法进行自动生成添加删除对象转换的功能
- IOS UISplitViewController之 解决 密码框添加之后 调用子视图的转向方法之时 对象为空
- 使用ArrayList集合,对其添加100个不同的元素: 1.使用add()方法将元素添加到ArrayList集合对象中; 2.调用集合的iterator()方法获得Iterator对象,并调用Ite
- Oracle自定义数据类型 2 (调用对象方法)
- ibatis调用oracle的函数,存储过程的方法 IN 和OUT /游标
- 利用Lambda表达式、扩展方法以及泛型来为对象添加方法
- 其实iBatis可以在调用新增记录的方法后 返回主键值 (Oracle,Sql Server,Mysql)
- 使用扩展方法和接口给对象添加“重置状态”功能
- 使用ArrayList集合,对其添加100个不同的元素: 1.使用add()方法将元素添加到ArrayList集合对象中; 2.调用集合的iterator()方法获得Iterator对象,并调用Ite
- ibatis调用oracle的函数,存储过程的方法_IN_和OUT_游标
- 为system对象添加扩展方法
- ibatis调用oracle的函数,存储过程的方法_IN_和OUT_游标
- Oracle分页存储过程及java的具体调用方法
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
- ibatis调用oracle的函数、存储过程的方法 in和out游标
- 【怎样写代码】向现有类型“添加”方法 -- 扩展方法(二):扩展方法的实现与调用