`
mmBlue
  • 浏览: 165106 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ibatis中动态SQL_delete

阅读更多

其实这个不是动态的,不过要写就把CRUD全写一边了,因为IBATIS很简单,就不放

JAVA代码,直接上XML

<delete id="delete_role_id" parameterClass="java.util.Map">
	delete myivr_trole where ROLEID in
	<iterate open="(" close=")" conjunction="," property="ids">
		#ids[]#
	</iterate>
</delete>

 这样的话,你在DAO中写

/**
 * 根据角色ID删除角色
 * @param ids 角色ID
 * @return int 影响行数:如果delete N条就返回N 
 */
public Integer deleteRoleById(Integer... ids) {
	Map<String,Object> map = new HashMap<String, Object>();
	map.put("ids", ids);
	return (Integer)getSqlMapClientTemplate().delete("role.delete_role_id", map); 
}
 

用Map传参数那么,iterate里面的property属性一定要和Map中的key相同,但是你还可以有更方便的选择,如下:

<delete id="delete_user_id" parameterClass="java.util.List">
	delete myivr_tuser where USERID in
	<iterate open="(" close=")" conjunction=",">
		#ids[]#
	</iterate>
</delete>

 再看DAO代码

public Integer deleteUserById(Integer... ids) {
	return super.getSqlMapClientTemplate().delete("user.delete_user_id", Arrays.asList(ids));
}
 

方便吧,不需要自己构建一个Map里,而且XML里面的#ids[]#名称可以顺便写的,呵呵

不过需要注意一下,这里的parameterClass一定要是java.util.List不能是java.util.ArrayList,因为ibatis内部用了反射机制,他不认Arrays.asList,比较class的出错,但是写List就可以了。

分享到:
评论

相关推荐

    iBatis SQL Maps开发指南.pdf

    开发指南 iBATIS SQL Maps Page 3 of 62 Map类型的Result 复杂类型属性(即自定义类型的属性) 避免N+1 Select(1:1) 延迟加载 VS 联合查询(1:1) 复杂类型集合的属性 避免N+1 Select(1:M和M:N) 组合键值或多...

    J2EE核心:iBatis_DAO入门与进阶.doc

    比如考虑在iBatis: SQL Maps中的应用例子。这是一个Struts应用允许对一个关系表执行SELECT, INSERT, UPDATE和DELETE的SQL请求。在这个应用中,使用SQL Maps做持续性框架。现在我们要修改这个应用,将这个关系表储存...

    为 Ibatis 2.3.4 构建增强的 Apache Ibator 实体类生成工具

    Ibator seeks to make a major impact on the large percentage of database operations that are simple CRUD (Create, Retrieve, Update, Delete). You will still need to hand code SQL and objects for custom...

    ibatis 开发指南(pdf)

    使用ibatis 提供的ORM 机制,对业务逻辑实现人员而言,面对的是纯粹的Java 对象, 这一层与通过Hibernate 实现ORM 而言基本一致,而对于具体的数据操作,Hibernate 会自动生成SQL 语句,而ibatis 则要求...

    Hitis V1.2.1

    (3)在ibatis中,也须90%的情况下,你用的是其强大的“动态组装sql”,而Hitis只取其这一项强大的功能,完全没有什么操作database的代码 (4)在Hitis中,你可以与spring无缝集成,借助于JdbcTemplate,你可以快速封装...

    IBatisNet的Codesmith模板

    generates IBatisNet SQL mapping file and a group of CSharp classes from a database table. ...SqlMap, the IBatis.NET SQL mapping file that contains SQL statements used in the DaoImpl above.

    ibatics 官方网站正确实例

    sqlMapper.delete("deleteAccount", id); } 但com.mydomain.data.Account.xml文件的delete部分如下: &lt;delete id="deleteAccountById" parameterClass="int"&gt; delete from ACCOUNT where ACC_ID = #id# ...

    Hitis V1.2

    (3)在ibatis中,也须90%的情况下,你用的是其强大的“动态组装sql”,而Hitis只取其这一项强大的功能,完全没有什么操作database的代码 (4)在Hitis中,你可以与spring无缝集成,借助于JdbcTemplate,你可以快速封装...

    前端-后端java的Util类的工具类

    │ │ dynamic-sql.html │ │ findbugs.html │ │ getting-started.html │ │ index.html │ │ integration.html │ │ issue-tracking.html │ │ java-api.html │ │ jdepend-report.html │ │ license.html...

    iBATIS 帮助文档

    SQL Maps (com.ibatis.sqlmap.*)......................................................................................................5 SQL Map的概念........................................................

    Java数据库技术详解 DOC简版

    3.7 DELETE语句 3.8 本章小结 第4章 PL/SQL 4.1 PL/SQL简介 4.2 PL/SQL基础 4.3 本章小结 第二篇 JDBC篇 第5章 JDBC技术基础 5.1 JDBC概述 5.2 JDBC API 5.3 JDBC操作数据库 5.4 本章小结 ...

    MyBatis-Generate

    MBG seeks to make a major impact on the large percentage of database operations that are simple CRUD (Create, Retrieve, Update, Delete). You will still need to hand code SQL and objects for join ...

    springmybatis

    mybatis实战教程mybatis in action之八mybatis 动态sql语句 mybatis实战教程mybatis in action之九mybatis 代码生成工具的使用 mybatis SqlSessionDaoSupport的使用附代码下载 转自:...

    java的轻量级orm工具包jdao.zip

     如果你觉得hibernate,ibatis等orm框架过于笨重,不烦试下jdao,它可以在团队开发中规范团队持久层代码,较少开发量,特别在单表操作上基本是对象操作,对于复杂SQL查询也有较好的封装。一、使用DAO方式操作数据:...

    .net源码生成工具DataBase2Sharp

     10、增加Select、Update、Insert和Delete基本语句代码的生成,方便您直接在代码中使用。 11、增加Java框架(Ibatis+Spring+struts+Extjs)代码的生成;添加Java实体类快速生成。 12、增加企业级别的界面自动生成...

    MySQL Truncate用法详解

    前言: 当我们想要清空某张表时,往往会使用truncate语句。大多时候我们只关心能否满足...执行truncate语句需要拥有表的drop权限,从逻辑上讲,truncate table类似于delete删除所有行的语句或drop table然后再create

    阿里巴巴编码规范 基础技能认证 考题分析(考题+答案).docx

    对于“明确停止使用的代码和配置”,如方法、变量、类、配置文件、动态配置属性等要坚决从程序中清理出去,避免造成过多垃圾。 B .永久弃用的代码段注释掉即可,即不用加任何注释。 C .对于暂时被注释掉,后续...

    JdbcTemplateTool.zip

    Spring 出品的 JdbcTemplate 对于不想使用hibernate或者ibatis那样需要大量学习成本而且还想获得对象化的人来说是很好用的。但是 JdbcTemplate还是有很多不足之处或者说是缺点。比如你没法像hibernate那样直接传一个...

    jfinalpluginsjfinal-dreampie.zip

    cn.dreampie.jfinal-sqlinxml  https://github.com/Dreampie/jfinal-sqlinxml 基于jfinal 的类似ibatis的sql语句管理方案 cn.dreampie.jfinal-lesscss  https://github.com/Dreampie/jfinal-lesscss java...

Global site tag (gtag.js) - Google Analytics