mybatis 与ibatis的区别

话不多说直接写记录。。。

1、查询表序列号并插入到数据库当中

ibatis

<insert id="insertDept" parameterType="java.util.Map">
  <selectKey resultType="int" keyProperty="id" >
   select seq_tree.nextval from dual
  </selectKey>
  insert into
  ts_tree(node)
  values(#{id}) </insert>

 

myibatis

<insert id="insertDept" parameterType="java.util.Map">
  <selectKey resultType="int" keyProperty="id" order="BEFORE">
   select seq_tree.nextval from dual
  </selectKey>
  insert into
  ts_tree(node)
  values(#{id}) </insert>

myibatis 在selectKey要加order这个属性

 

2、sqlmap有调用函数和过程的话呢,mybatis与ibatis写法是不同的

mybatis

<select id="selectSingole" resultType="string"
  parameterType="java.util.Map">
  <![CDATA[
   select f_sys(${value}) value from dual
   ]]>
 </select>

这个value在java上封装后再传到mybatis

 

public String findSingleColToString(Map<String,Object> map) {

  return (String) sqlSessionTemplate.selectOne("namespace名.selectSingole"," 'select t.dept_node  from ts_dept t where t.state = ''A'' and t.dept_role in (4,5,8)' ");
 }

 

3、很多人会使用sql查询语句上用in,但很多人会发现ibatis是非常简单实现,而mybatis有方法但比较麻烦实现的

很多人会说直接用foreach这个方法可以解决。解决是可以,但是比较麻烦呀

我没用这个方法,我选择是直接在java上进行封装in的sql语句然后再传到sqlmap里面

public String getDefaultDeptID(Map<String,Object> param) {
  String sql = "'select t.node from ts_dept t  b.node in ("+ param.get("deptIds") +") '";
  String defaultDeptIds = (String) sqlSessionTemplate.selectOne("namespace名.defaultDeptIds", sql);
  return defaultDeptIds;
 }

sqlmap

 

<select id="defaultDeptIds" resultType="java.lang.String" parameterType="java.lang.String" >
  ${value}
 </select>

 

先记录一下,以后方便查看

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值