`

ibatis非查询标签1

阅读更多

sqlmap里的 select标签是用来查询,今天说<insert>,<update>,<delete>标签,这三个基本只有输入没有输出

 

这三个标签有这样几个共同的属性,parameterClass,ParameterMap,id,参数类型,参数映射,ID

 

通过sqlMap API里的这三个方法来调用

Java代码 复制代码
  1. public int insert(String statementName,   
  2. Object parameterObject)   
  3. throws SQLException   
  4. public int update(String statementName,   
  5. Object parameterObject)   
  6. throws SQLException   
  7. public int delete(String statementName,   
  8. Object parameterObject)   
  9. 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标签来学习一下参数映射,另两个类似

Java代码 复制代码
  1. 自动参数映射   
  2.   
  3.   
  4.   
  5. <insert id="insertUser" parameterClass="User">   
  6.   
  7.   insert into user(username,password,department)   
  8.   
  9. values(#username#,#password#,#department#)   
  10.   
  11. </insert>   
  12.   
  13. 内敛参数映射   
  14. <insert id="insertUser2" parameterClass="User">   
  15.   
  16.   insert into user(username,password,department)   
  17.   
  18. values(#username:VARCHAR#,#password:VARCHAR#,#department:VARCHAR#)   
  19. </insert>   
  20. 外联参数映射   
  21. <parameterMap  id="userMap" class="User">   
  22.         <parameter property="username" jdbcType="VARCHAR"/>   
  23.         <parameter property="password" jdbcType="VARCHAR"/>   
  24.         <parameter property="department" jdbcType="VARCHAR"/>   
  25.     </parameterMap>   
  26.     <insert id="insertUser3" parameterMap="userMap">   
  27.         INSERT INTO USER   
  28.         (    
  29.             USERNAME, PASSWORD, DEPARTMENT   
  30.         )VALUES(   
  31.             ?,?,?    
  32.         )   
  33.     </insert>   
  34. 注:它会自动按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定义好的顺序对应,代替占位符???
Java代码 复制代码
  1. 测试类的使用:   
  2.   
  3. User user=new User();   
  4.    user.setUsername("zhangsan");   
  5.    user.setPassword("123");   
  6.    user.setDepaertment("Service");   
  7.       
  8.    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语句,举一个简单例子,它可以执行除那四类之外的其他语句

Xml代码 复制代码
  1. <statement>  
  2.  <statement id=“droptable”>  
  3.  DROP TABLE User CASCADE   
  4.  </statement>  
<statement>
 <statement id=“droptable”>
 DROP TABLE User CASCADE
 </statement>

  

Java代码 复制代码
  1. sqlMap.update(“droptable”,null); api调用语句  
sqlMap.update(“droptable”,null); api调用语句

 statement一般用的比较少,前四种就可以基本满足我们的需求,解决我们的问题

2 procedure 存储过程,也可以使用parameterMap属性,用call调用,与数据库有关,简单说一下

Xml代码 复制代码
  1. <parameterMap id="swapParameters" class="map" >  
  2. <parameter property="email1" jdbcType="VARCHAR" javaType="java.lang.String" mode="INOUT"/>  
  3. <parameter property="email2" jdbcType="VARCHAR" javaType="java.lang.String" mode="INOUT"/>  
  4. </parameterMap>  
  5. <procedure id="swapEmailAddresses" parameterMap="swapParameters" >  
  6. {call swap_email_address (?, ?)}   
  7. </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

 

 

分享到:
评论

相关推荐

    ibatis动态SQL标签用法

    iBatis是Java持久层框架,提供了动态SQL标签来实现动态查询。动态SQL标签可以根据不同的条件生成不同的SQL语句,从而提高查询效率和灵活性。 动态SQL片段 iBatis提供了动态SQL片段的功能,可以将SQL语句拆分成小的...

    iBATIS动态标签

    iBATIS动态标签是SQL映射文件中的一种功能强大的特性,它允许在SQL语句中进行条件判断,根据传入的参数动态生成合适的查询条件。动态标签主要用于提高灵活性,使得SQL映射文件能够适应多种查询场景,而无需为每种...

    Ibatis复杂查询语句.doc

    在Ibatis中,复杂查询通常涉及到多个表的联接、条件动态拼接、子查询以及各种数据类型的处理。文档"Ibatis复杂查询语句.doc"所展示的查询语句就是一个很好的例子,展示了Ibatis如何处理复杂的数据库操作。接下来,...

    ibatis标签

    标题中的“ibatis标签”指的是在iBATIS框架中用于动态SQL的一个关键功能。iBATIS是一个优秀的持久层框架,它允许将SQL语句直接嵌入到Java代码中,简化了数据库操作。而`&lt;iterate&gt;`标签是iBATIS提供的一个便利的循环...

    iBatis条件查询

    对于"ACCP Y2"这个标签,它可能指的是某种特定的课程或认证体系,可能是在学习路径的第二阶段介绍了iBatis的使用。而"iBaits按条件查询及分页功能"进一步强调了这个资源关注的重点,即利用iBatis实现基于用户输入...

    ibatis 文档查询

    【标签】:iBATIS、查询、映射、对象关系 【正文】: iBATIS作为一个轻量级的持久层框架,它在处理数据库查询方面具有强大的灵活性和便利性。在《iBATIS In Action》一书中,作者详细介绍了如何使用iBATIS进行高级...

    动态ibatis查询语句配置

    动态查询语句配置是Ibatis的一个重要特性,它允许我们在运行时根据业务需求构建灵活多变的SQL语句。这篇博文主要探讨的是如何在Ibatis中设置和使用动态SQL,以便实现更高效、更灵活的数据查询。 首先,我们需要理解...

    ibatis的动态查询

    **知识点1:** 在进行模糊查询时,ibatis支持两种不同的语法标记:`#` 和 `$`。 1. **使用 `$value$` 进行模糊查询:** - 在进行模糊查询时,使用 `$value$` 的方式更为安全且易于实现。 - 正确的语法应为 `name ...

    ibatis 之分页

    1. **SQL映射分页**:在Ibatis的XML配置文件中,我们可以直接编写包含分页条件的SQL语句。例如,对于MySQL,可以写成: ```xml SELECT * FROM your_table WHERE some_condition LIMIT #{start}, #{limit} ``` ...

    ibatis and和or联合查询 .doc

    ### ibatis and和or联合查询知识点 #### 一、ibatis简介 ibatis是一个支持普通SQL查询、存储过程以及高级映射的优秀开源数据访问框架。ibatis消除了几乎所有的JDBC对象操作,提供了一个简单的基本API,它通过XML或...

    iBatis执行非查询语句(CRUD,函数和过程)

    这篇博客“iBatis执行非查询语句(CRUD,函数和过程)”深入探讨了如何在iBatis中执行创建、读取、更新和删除(CRUD)操作,以及调用数据库存储过程和函数。 一、iBatis简介 iBatis最初由MyBatis的创始人Clinton ...

    ibatis多表查询过程

    在iBatis中,我们可以使用`&lt;select&gt;`标签来定义多表查询的SQL语句。 ### 3. 使用`&lt;include&gt;`标签 为了保持SQL语句的整洁和可重用性,可以使用`&lt;include&gt;`标签将公共部分的SQL语句提取出来。这样在多个查询中引用同...

    ibatis做连接查询 .doc

    注意,iBatis还支持动态SQL,这意味着你可以在XML配置文件中使用`&lt;if&gt;`、`&lt;choose&gt;`、`&lt;when&gt;`等标签来根据条件动态构建SQL语句,这对于复杂的连接查询非常有用。 总的来说,iBatis提供了强大的SQL定制能力,使得...

    主子表查询ibatis

    1. **iBATIS主子表查询配置**: 在iBATIS的映射文件(XML配置文件)中,我们需要定义两个Mapper:一个是主表的Mapper,另一个是子表的Mapper。在主表的Mapper中,通过`&lt;resultMap&gt;`标签定义主表与子表的关系,使用`...

    ibatis总结 ibatis ibatis ibatis ibatis

    1. Ibatis SQL映射: Ibatis的主要特点是通过XML或注解定义SQL映射文件,将SQL语句与Java对象绑定。例如,`&lt;select&gt;`标签用于定义查询语句,`&lt;insert&gt;`、`&lt;update&gt;`和`&lt;delete&gt;`分别对应增删改操作。在SQL映射文件...

    Ibatis的简单例子(增删改查,联合查询等)

    在这个"Ibatis的简单例子"中,我们将探讨如何使用Ibatis进行数据库的增删改查(CRUD)操作以及联合查询。 1. **安装与配置**: 在开始之前,你需要在项目中添加Ibatis的依赖,通常是通过Maven或Gradle。在Maven的`...

    Ibatis查询语句里,可以使用多表查询

    1. **查询语句**:从 `MEMBER_POST`、`AUTH_USER` 和 `MEMBER_MEMBER_GROUP_REL` 三个表中选择数据。 2. **条件过滤**:通过 `&lt;dynamic&gt;` 标签实现了动态 SQL,根据传入的参数决定是否添加 WHERE 子句。 3. **排序**...

    IBatis完成单表基本的数据库操作 模糊查询

    标题 "IBatis完成单表基本的数据库操作 模糊查询" 涉及到的是使用iBatis这个轻量级的持久层框架进行数据库的基本操作,特别是模糊查询。iBatis是一个优秀的SQL映射框架,它允许开发者将SQL语句与Java代码分离,提高...

    ibatis教程_查询指定id的单个对象

    在查询指定id的单个对象时,Ibatis提供了`&lt;select&gt;`标签,用于定义SQL查询。标签内可以设置id属性,对应Mapper接口中的方法名,resultType或resultMap属性则定义返回结果的类型或者映射关系。 ```xml SELECT * ...

    ibatis的多参数查询.doc

    ### ibatis多参数查询解析 #### 一、引言 在使用ibatis(现称为MyBatis)进行数据库操作时,经常会遇到需要处理多个输入参数的情况。然而,默认情况下ibatis只支持单个输入参数,这在实际开发中往往难以满足需求。...

Global site tag (gtag.js) - Google Analytics