在ibatIS中经常会用到: $ 和 # 符号。
一、区别
$aaa$ 输出参数是以字符串方式直接输出 123
#aaa# 输出参数是以Parameter方式输出 @aaa
二、实际应用
1.sqlMap配置文件
<!-- 查询左树菜单 -->
<select id="queryMenu" parameterClass="com.hanpeng.base.phone.model.TEmployeePriv"
resultClass="com.hanpeng.base.phone.model.TEmployeePriv">
SELECT
t1.PRIV_NUM as privNum ,
t1.PRIV_NAME as privName ,
t1.PRIV_PAGE as privPage ,
t1.PRIV_PAGE_DEFAULT as privPageDefault ,
t1.PRIV_URL as privUrl ,
t1.PRIV_INFO as privInfo ,
t1.MENU_ID_1 as menuId1 ,
t1.MENU_ID_2 as menuId2 ,
t1.MENU_ID_3 as menuId3 ,
t1.MENU_ID_DEFAULT as menuIdDefault ,
t1.MENU_RANK_1 as menuRank1 ,
t1.MENU_RANK_2 as menuRank2 ,
t1.MENU_RANK_3 as menuRank3 ,
t1.MENU_RANK_DEFAULT as menuRankDefault ,
t1.RANK as rank ,
t1.RANK_DEFAULT as rankDefault ,
t1.REMARK as remark ,
t1.PRIV_TYPE as privType
FROM T_EMPLOYEE_PRIV t1
left join T_ROLE_PRIV t2 on t1.priv_num=t2.priv_num
left join T_EMPLOYEE_SAFE t3 on t3.role_num=t2.role_num
where t3.employee_id=#employeeId#
order by $menuRank1$
</select>
2.java代码中应用
public List<List<TEmployeePriv>> queryMenu(TEmployeePriv priv)
throws SQLException {
List<TEmployeePriv> allPrivList = new ArrayList<TEmployeePriv>();
List<TEmployeePriv> firstList = new ArrayList<TEmployeePriv>();
List<TEmployeePriv> secondList = new ArrayList<TEmployeePriv>();
String orderType = Converter.getCfgValue("manage_menu_type");//配置表,菜单排序类型
/*if("215".equals(orderType)){
priv.setMenuRank1("t1.menu_rank_1");
}
else if("216".equals(orderType)){
priv.setMenuRank1("t1.menu_rank_2");
}
else if("217".equals(orderType)){
priv.setMenuRank1("t1.menu_rank_3");
}
else{
priv.setMenuRank1("t1.menu_rank_1");
}*/
priv.setMenuRank1("t1.menu_rank_1");//直接设置字符串(死的参数)
priv.setEmployeeId(this.getUserId());//设置参数方式(活的参数)
allPrivList = empDAO.queryMenu(priv);//根据权限查询当前商户的菜单
/*1.加载一级菜单*/
if( allPrivList.size()>0 ){
for( TEmployeePriv firstPriv : allPrivList ){
if(null==firstPriv.getMenuId1()){
firstList.add(firstPriv);//一级菜单
}
}
}
/*2.加载二级菜单*/
for( TEmployeePriv firstPriv : firstList ){
for(TEmployeePriv secondPriv : allPrivList){
if(null!=secondPriv.getMenuId1()&&
firstPriv.getPrivNum().equals(secondPriv.getMenuId1())){
secondList.add(secondPriv);
}
}
}
List<List<TEmployeePriv>> result = new ArrayList<List<TEmployeePriv>>();
result.add(firstList);
result.add(secondList);
return result;
}
分享到:
相关推荐
ibatis中 $ 于 # 的 区别 ibatis中 $ 于 # 的 区别
ibatis中输入输出各种类型的参数分析及#与$区别
选用ibatis和hibernate的区别选用ibatis和hibernate的区别选用ibatis和hibernate的区别
iBatis和Hibernate的区别
描述了ibatis与hibernate的主要区别
自己总结的myBatis和ibatis的区别
在里面总结了ibatis和mybatis的主要区别,包括xml文件等
iBATIS的是一个持久层框架,它能够自动在 Java, .NET, 和Ruby on Rails中与SQL数据库和对象之间的映射。映射是从应用程序逻辑封装在XML配置文件中的SQL语句脱钩。 iBATIS是一个轻量级的框架和持久性API适合持久化的...
myibatis笔记,myibatis3.2版本与ibatis2.3版本的区别
ibatas的sql语句需要自己手动写,而hibernate能够在程序运行时自动生成。但是不要就这样以为hibernate比ibatas方便,其实二者熟悉之后的效率差不多。而hibernate还能够自动建表等等,这样的好处就在于你带着这个程序...
书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。书的最后给出了一个设计优雅、层次清晰的示例程序JGameStore,该示例涵盖全书的...
ibatis与hibernate区别,之中包括,现在企业为什么选择ibatis而放弃hibernate的选择,所有这里吧自由选择及。
上一个版本是结合当前流行的主流框架,今天这个抛开了mybatis这个持久层框架,选择了ibatis作为我的...其实mybatis和ibatis的区别不是很大,配置也只是一点小区别。框架搭好了,需要的自己可以往里面添加业务逻辑
主要描述的是hibernate和ibatis的区别,在什么时候使用hibernate比较好
Ibatis Hibernate 分析 比较 区别
ibatis与hibernate的区别.很经典的
ibatis spring的整合快速开发 使用ibatis 和hibernate的区别
用ibatis的原因 jdbc、hibernate、ibatis的区别 spring+ibatis
介绍了IBATIS在开发过程中的使用步骤,配置文件的介绍,以及与HIBERNATE之间的区别等
ibatis和hibernate相比较, 做了一个整理, 包括他们的配置, 配置文件的编写.