- 浏览: 1047797 次
- 性别:
- 来自: 郑州
文章分类
- 全部博客 (605)
- 数据挖掘 (22)
- spring (40)
- 工具使用 (39)
- java (137)
- JavaScript (40)
- webwork (12)
- web (120)
- 资源 (7)
- SSH (5)
- oracle (20)
- J2ME (1)
- 环境配置 (37)
- 项目管理 (29)
- mysql (14)
- struts (4)
- 项目总结 (27)
- ibatis学习 (33)
- 学习计划 (2)
- 缓存 (7)
- 重构 (3)
- Android (1)
- jquery (12)
- UML (3)
- 用户体验 (4)
- 习惯 (7)
- sakai (1)
- urlrewrite (4)
- rss (5)
- C plus plus (5)
- 算法 (5)
- 海量数据处理 (7)
- office(word、excel) (1)
- 面试题 (3)
- solr (8)
- 大数据 (2)
最新评论
-
hujin19861102:
截图看不见,最后一个webwrok的配置看不见
Ext+Webwork+Json 实现分页表格查询效果 -
蜗牛笔:
弱弱的问一句,要是分出来的词在词典中没有,那么两部分的pos- ...
ICTCLAS 中科院分词系统 -
weipeng1986:
授人予鱼不如授人予鱼,我想问你的是你是怎么总结的。比如第四种情 ...
JAVA中字符串连接效率的测试 -
xiaoqiang2008:
执行两次的原因是什么,好像楼主没弄清楚啊!是不是在web.xm ...
关于Spring中用quartz定时器在定时到达时同时执行两次的问题 -
Kent_Mu:
...
ibatis-dynamic的用法
sqlmap里的 select标签是用来查询,今天说<insert>,<update>,<delete>标签,这三个基本只有输入没有输出
这三个标签有这样几个共同的属性,parameterClass,ParameterMap,id,参数类型,参数映射,ID
通过sqlMap API里的这三个方法来调用
- public int insert(String statementName,
- Object parameterObject)
- throws SQLException
- public int update(String statementName,
- Object parameterObject)
- throws SQLException
- public int delete(String statementName,
- Object parameterObject)
- throws SQLException
public int insert(String statementName, Object parameterObject) throws SQLException public int update(String statementName, Object parameterObject) throws SQLException public int delete(String statementName, Object parameterObject) throws SQLException
之前讲了结果的映射,内敛参数映射和外联参数映射,参数映射和结果映射类似
这里以insert标签来学习一下参数映射,另两个类似
- 自动参数映射
- <insert id="insertUser" parameterClass="User">
- insert into user(username,password,department)
- values(#username#,#password#,#department#)
- </insert>
- 内敛参数映射
- <insert id="insertUser2" parameterClass="User">
- insert into user(username,password,department)
- values(#username:VARCHAR#,#password:VARCHAR#,#department:VARCHAR#)
- </insert>
- 外联参数映射
- <parameterMap id="userMap" class="User">
- <parameter property="username" jdbcType="VARCHAR"/>
- <parameter property="password" jdbcType="VARCHAR"/>
- <parameter property="department" jdbcType="VARCHAR"/>
- </parameterMap>
- <insert id="insertUser3" parameterMap="userMap">
- INSERT INTO USER
- (
- USERNAME, PASSWORD, DEPARTMENT
- )VALUES(
- ?,?,?
- )
- </insert>
- 注:它会自动按map定义好的顺序对应,代替占位符???
自动参数映射 <insert id="insertUser" parameterClass="User"> insert into user(username,password,department) values(#username#,#password#,#department#) </insert> 内敛参数映射 <insert id="insertUser2" parameterClass="User"> insert into user(username,password,department) values(#username:VARCHAR#,#password:VARCHAR#,#department:VARCHAR#) </insert> 外联参数映射 <parameterMap id="userMap" class="User"> <parameter property="username" jdbcType="VARCHAR"/> <parameter property="password" jdbcType="VARCHAR"/> <parameter property="department" jdbcType="VARCHAR"/> </parameterMap> <insert id="insertUser3" parameterMap="userMap"> INSERT INTO USER ( USERNAME, PASSWORD, DEPARTMENT )VALUES( ?,?,? ) </insert> 注:它会自动按map定义好的顺序对应,代替占位符???
- 测试类的使用:
- User user=new User();
- user.setUsername("zhangsan");
- user.setPassword("123");
- user.setDepaertment("Service");
- Integer returnValue=(Integer)sqlMap.insert("insertUser",user);
测试类的使用: User user=new User(); user.setUsername("zhangsan"); user.setPassword("123"); user.setDepaertment("Service"); Integer returnValue=(Integer)sqlMap.insert("insertUser",user);
建议用外联参数映射,以上三种映射同样适用于update,delete,select.
其他的标签,
1 <statement>,可以放置各类sql语句,举一个简单例子,它可以执行除那四类之外的其他语句
<statement> <statement id=“droptable”> DROP TABLE User CASCADE </statement>
sqlMap.update(“droptable”,null); api调用语句
statement一般用的比较少,前四种就可以基本满足我们的需求,解决我们的问题
2 procedure 存储过程,也可以使用parameterMap属性,用call调用,与数据库有关,简单说一下
- <parameterMap id="swapParameters" class="map" >
- <parameter property="email1" jdbcType="VARCHAR" javaType="java.lang.String" mode="INOUT"/>
- <parameter property="email2" jdbcType="VARCHAR" javaType="java.lang.String" mode="INOUT"/>
- </parameterMap>
- <procedure id="swapEmailAddresses" parameterMap="swapParameters" >
- {call swap_email_address (?, ?)}
- </procedure>
<parameterMap id="swapParameters" class="map" > <parameter property="email1" jdbcType="VARCHAR" javaType="java.lang.String" mode="INOUT"/> <parameter property="email2" jdbcType="VARCHAR" javaType="java.lang.String" mode="INOUT"/> </parameterMap> <procedure id="swapEmailAddresses" parameterMap="swapParameters" > {call swap_email_address (?, ?)} </procedure>
mode有三种,in ,out,inout
swap_email_address 是数据库里已经定义好的存储过程,直接调用传入参数就可以了
转载自:http://crazycat03.iteye.com/blog/549486
发表评论
-
list in传参 与批量插入 批量更新
2017-04-01 10:48 812传入一个map的参数,map里有一个tenantIds的Lis ... -
ibatis in ##的问题
2012-11-02 13:25 838http://www.hake.cc/a/biancheng/ ... -
ibatis缓存强制刷新与命中率
2012-10-19 19:06 1390缓存强制刷新: // spring注入 private Sq ... -
数据日志记录讨论
2011-10-26 18:51 949详情见附件中的PPT -
Ibatis的类型处理器TypeHandler解析
2011-10-24 16:28 3320原文来自: http://blog.csdn.net/lovi ... -
ibatis mysql 字段 tinyint(1) map应用要小心
2011-10-20 18:18 3995http://www.mysqlab.net/docs/ref ... -
spring+ibatis注解方式注入
2011-10-15 17:24 1022http://www.cnblogs.com/archie20 ... -
webwork+spring+ibatis注解培训文档
2011-08-15 17:26 1389今天整理了 spring 注解的使用,主要是结合公司 ... -
ibatis知识点收藏
2011-07-08 23:11 8911. 原来如此,所以在遍历之前要设置被跌代对象 h ... -
iBATIS自动生成主键
2011-07-08 22:50 990我们在数据库插入一条 ... -
ibatis配置log4j输出sql语句等日志信息
2011-07-08 22:47 1601总结步骤如下: 建立一个log4j.properties文 ... -
iBATIS一对多/多对多N+1问题解决方案
2011-07-08 22:30 1203对于iBATIS一对多/多对多的问题,传统的办法是在一对多/多 ... -
强制刷新Ibatis中的缓存(OSCache)
2011-07-08 22:21 1446持久层使用Ibatis,并开启动缓存 后台画面可用如下代码强制 ... -
让sqlmap文件 "继承" 起来
2011-07-08 22:18 1445多个项目中使用ibatis , 和数据库表对应的 sqlmap ... -
Ibatis比较少人使用的配置语法
2011-07-08 22:12 1645简单来说,ibatis3虽然没有ognl,不过也支持基本的表达 ... -
ibatis查询返回java.util.HashMap结果列表
2011-07-08 22:00 8207DAO的实现类中的代码: Java代码 ... -
ibatis使用总结(转)
2011-05-27 23:21 1554SqlMap的配置是iBatis中应 ... -
ibatis配置详解
2011-05-27 10:26 1116ibatis配置详解 ibatis与hi ... -
ibatis配置文件的namespace
2011-05-27 10:20 2903ibatis的配置文件中有一个命名空间的属性,如<sql ... -
ibatis配置多表关联(一对一、一对多、多对多)
2011-05-27 08:41 1348iBatis的多表关联。 ibatis的表关联,和数据库语句 ...
相关推荐
iBatis是Java持久层框架,提供了动态SQL标签来实现动态查询。动态SQL标签可以根据不同的条件生成不同的SQL语句,从而提高查询效率和灵活性。 动态SQL片段 iBatis提供了动态SQL片段的功能,可以将SQL语句拆分成小的...
iBATIS动态标签是SQL映射文件中的一种功能强大的特性,它允许在SQL语句中进行条件判断,根据传入的参数动态生成合适的查询条件。动态标签主要用于提高灵活性,使得SQL映射文件能够适应多种查询场景,而无需为每种...
在Ibatis中,复杂查询通常涉及到多个表的联接、条件动态拼接、子查询以及各种数据类型的处理。文档"Ibatis复杂查询语句.doc"所展示的查询语句就是一个很好的例子,展示了Ibatis如何处理复杂的数据库操作。接下来,...
标题中的“ibatis标签”指的是在iBATIS框架中用于动态SQL的一个关键功能。iBATIS是一个优秀的持久层框架,它允许将SQL语句直接嵌入到Java代码中,简化了数据库操作。而`<iterate>`标签是iBATIS提供的一个便利的循环...
对于"ACCP Y2"这个标签,它可能指的是某种特定的课程或认证体系,可能是在学习路径的第二阶段介绍了iBatis的使用。而"iBaits按条件查询及分页功能"进一步强调了这个资源关注的重点,即利用iBatis实现基于用户输入...
【标签】:iBATIS、查询、映射、对象关系 【正文】: iBATIS作为一个轻量级的持久层框架,它在处理数据库查询方面具有强大的灵活性和便利性。在《iBATIS In Action》一书中,作者详细介绍了如何使用iBATIS进行高级...
动态查询语句配置是Ibatis的一个重要特性,它允许我们在运行时根据业务需求构建灵活多变的SQL语句。这篇博文主要探讨的是如何在Ibatis中设置和使用动态SQL,以便实现更高效、更灵活的数据查询。 首先,我们需要理解...
**知识点1:** 在进行模糊查询时,ibatis支持两种不同的语法标记:`#` 和 `$`。 1. **使用 `$value$` 进行模糊查询:** - 在进行模糊查询时,使用 `$value$` 的方式更为安全且易于实现。 - 正确的语法应为 `name ...
1. **SQL映射分页**:在Ibatis的XML配置文件中,我们可以直接编写包含分页条件的SQL语句。例如,对于MySQL,可以写成: ```xml SELECT * FROM your_table WHERE some_condition LIMIT #{start}, #{limit} ``` ...
### ibatis and和or联合查询知识点 #### 一、ibatis简介 ibatis是一个支持普通SQL查询、存储过程以及高级映射的优秀开源数据访问框架。ibatis消除了几乎所有的JDBC对象操作,提供了一个简单的基本API,它通过XML或...
这篇博客“iBatis执行非查询语句(CRUD,函数和过程)”深入探讨了如何在iBatis中执行创建、读取、更新和删除(CRUD)操作,以及调用数据库存储过程和函数。 一、iBatis简介 iBatis最初由MyBatis的创始人Clinton ...
在iBatis中,我们可以使用`<select>`标签来定义多表查询的SQL语句。 ### 3. 使用`<include>`标签 为了保持SQL语句的整洁和可重用性,可以使用`<include>`标签将公共部分的SQL语句提取出来。这样在多个查询中引用同...
注意,iBatis还支持动态SQL,这意味着你可以在XML配置文件中使用`<if>`、`<choose>`、`<when>`等标签来根据条件动态构建SQL语句,这对于复杂的连接查询非常有用。 总的来说,iBatis提供了强大的SQL定制能力,使得...
1. **iBATIS主子表查询配置**: 在iBATIS的映射文件(XML配置文件)中,我们需要定义两个Mapper:一个是主表的Mapper,另一个是子表的Mapper。在主表的Mapper中,通过`<resultMap>`标签定义主表与子表的关系,使用`...
1. Ibatis SQL映射: Ibatis的主要特点是通过XML或注解定义SQL映射文件,将SQL语句与Java对象绑定。例如,`<select>`标签用于定义查询语句,`<insert>`、`<update>`和`<delete>`分别对应增删改操作。在SQL映射文件...
在这个"Ibatis的简单例子"中,我们将探讨如何使用Ibatis进行数据库的增删改查(CRUD)操作以及联合查询。 1. **安装与配置**: 在开始之前,你需要在项目中添加Ibatis的依赖,通常是通过Maven或Gradle。在Maven的`...
1. **查询语句**:从 `MEMBER_POST`、`AUTH_USER` 和 `MEMBER_MEMBER_GROUP_REL` 三个表中选择数据。 2. **条件过滤**:通过 `<dynamic>` 标签实现了动态 SQL,根据传入的参数决定是否添加 WHERE 子句。 3. **排序**...
标题 "IBatis完成单表基本的数据库操作 模糊查询" 涉及到的是使用iBatis这个轻量级的持久层框架进行数据库的基本操作,特别是模糊查询。iBatis是一个优秀的SQL映射框架,它允许开发者将SQL语句与Java代码分离,提高...
在查询指定id的单个对象时,Ibatis提供了`<select>`标签,用于定义SQL查询。标签内可以设置id属性,对应Mapper接口中的方法名,resultType或resultMap属性则定义返回结果的类型或者映射关系。 ```xml SELECT * ...
### ibatis多参数查询解析 #### 一、引言 在使用ibatis(现称为MyBatis)进行数据库操作时,经常会遇到需要处理多个输入参数的情况。然而,默认情况下ibatis只支持单个输入参数,这在实际开发中往往难以满足需求。...