mybatis调用存储过程格式:
<select id="AAA" parameterType="java.util.Map" statementType="CALLABLE" resultType="String"> <![CDATA[ { CALL 存储过程名( #{参数,mode=IN,jdbcType=VARCHAR}, 固定参数, #{返回参数,mode=OUT,jdbcType=VARCHAR} )} ]]> </select>
1、xml文件
<select id="getGroupNum" statementType="CALLABLE" parameterType="com.guorui.model.ParamSPC">
{call GYL_COMMON.GETGROUPNUM(
#{IN_PARAMETERID,jdbcType=VARCHAR,mode=IN},
#{IN_STEELID,jdbcType=VARCHAR,mode=IN},null,null,null,
#{OUT_GN,jdbcType=INTEGER,mode=OUT},
#{RST,jdbcType=CURSOR,mode=OUT,resultMap=BaseResultMap2,javaType=java.sql.ResultSet})}
< /select>
< resultMap id="BaseResultMap2" type="com.guorui.dao.TbSysUser">
< !--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Mon Nov 15 19:49:43 CST 2010.
-->
<result column="USERID" jdbcType="DECIMAL" property="userid" />
< result column="NUSERID" jdbcType="VARCHAR" property="nuserid" />
< result column="STRUSERNAME" jdbcType="VARCHAR" property="strusername" />
< result column="STRDEP" jdbcType="VARCHAR" property="strdep" />
< result column="STRDUTY" jdbcType="VARCHAR" property="strduty" />
< result column="STRUSERPWD" jdbcType="VARCHAR" property="struserpwd" />
< result column="DTINSDATE" jdbcType="TIMESTAMP" property="dtinsdate" />
< result column="STRINSBY" jdbcType="VARCHAR" property="strinsby" />
< result column="DTUPTDATE" jdbcType="TIMESTAMP" property="dtuptdate" />
< result column="STRUPTBY" jdbcType="VARCHAR" property="struptby" />
< result column="LOGIN_COUNT" jdbcType="DECIMAL" property="loginCount" />
< result column="LOGIN_LAST_TIME" jdbcType="TIMESTAMP" property="loginLastTime" />
< result column="STATUS" jdbcType="VARCHAR" property="status" />
< result column="STRDEPNO" jdbcType="VARCHAR" property="strdepno" />
< /resultMap>
2、parameter bean
public class ParamSPC {
String IN_PARAMETERID;
String IN_STEELID;
Integer OUT_GN;
List<TbSysUser> RST;
public String getIN_PARAMETERID() {
return IN_PARAMETERID;
}
public void setIN_PARAMETERID(String iN_PARAMETERID) {
IN_PARAMETERID = iN_PARAMETERID;
}
public String getIN_STEELID() {
return IN_STEELID;
}
public void setIN_STEELID(String iN_STEELID) {
IN_STEELID = iN_STEELID;
}
public Integer getOUT_GN() {
return OUT_GN;
}
public void setOUT_GN(Integer oUT_GN) {
OUT_GN = oUT_GN;
}
public List<TbSysUser> getRST() {
return RST;
}
public void setRST(List<TbSysUser> rST) {
RST = rST;
}
}
3、xxxMaper.java 中的方法
Object getGroupNum(ParamSPC param);
4、使用demo
SqlSession session = AllSqlMap.getInstance().openSession();
try {
TbSysUserMapper mapper = session.getMapper(TbSysUserMapper.class);
ParamSPC param = new ParamSPC();
param.setIN_PARAMETERID("010401"); // 填充 in 参数,out 参数不用任何处理
param.setIN_STEELID("65Mn棒带");
mapper.getGroupNum(param);
System.out.println(param.getOUT_GN()); // 获取计算结果
System.out.println(param.getRST().size());
session.commit(true);
} catch(Exception e){
e.printStackTrace();
session.rollback(true);
} finally {
session.close();
}
详细网址
http://lohasle.iteye.com/blog/1669879
http://blog.csdn.net/guo_rui22/article/details/6659294
相关推荐
这个提供的"mybatis调用存储过程源码"压缩包,包含了一个完整的MyBatis调用存储过程的示例,解压后可以直接运行,帮助开发者理解如何在实际项目中实现这一功能。详细注释可以帮助初学者更好地理解和学习这一过程。...
MyBatis作为一款流行的Java持久层框架,提供了调用存储过程的功能。下面将详细介绍如何在MyBatis中配置和使用存储过程。 ### 1. 配置MyBatis XML映射文件 在MyBatis的映射文件(mapper.xml)中,我们需要为存储...
title: 10.3 MyBatis调用存储过程 10.3.3根据id查询数据返回对象10.3 MyBatis调用存储过程 10.3.3根据id查询数据返回对
在Spring和MyBatis的集成中,通过MyBatis的SqlSession对象可以调用存储过程。Oracle存储过程是一组预编译的SQL语句,可以在数据库服务器端执行,提供更好的性能和安全性。 1. **无返回值的存储过程**: 当存储过程...
至此,我们就完成了Spring Boot整合MyBatis调用Oracle存储过程并处理游标返回数据的过程。在实际开发中,可以根据需求调整存储过程的逻辑和结果处理方式,以满足各种复杂业务场景。注意,对于大数据量的查询,使用...
在Mapper.java文件中,需要定义一个调用存储过程的方法。例如: ```java public interface OracleMapper { void procNoParam(); } ``` 在MapperTest.java文件中,可以编写测试代码来调用存储过程。例如: ```java ...
MyBatis调用MYSQL存储过程 返回多行 引用的包: asm-3.1.jar cglib-2.2.jar commons-logging-1.1.1.jar log4j-1.2.13.jar mybatis-3.0.4.jar mysql-connector-java-5.1.13.jar slf4j-api-1.5.8.jar slf4j-log4j12-...
能不能写个动态的业务,只输入存储过程名称,自动获取存储过程参数,并且参数的数据从前台传递过来...只根据输入不同的存储过程名称、参数内容,自动调用不同的存储过程。 已经使用在多个项目中 全开源项目 请放心下载
MyBatis调用存储过程的实例代码 MyBatis是一个基于Java的持久层框架,提供了对数据库的访问和操作。存储过程是一种编译好的SQL语句,能够实现复杂的业务逻辑。下面是一个关于MyBatis调用存储过程的实例代码,通过这...
调用存储过程则使用`CALL`关键字: ```sql CALL sp_name([参数列表]); ``` 删除存储过程的命令是`DROP PROCEDURE`,需要注意的是,不能在一个存储过程中删除另一个存储过程。 MyBatis调用MySQL存储过程的实现通常...
这里,我们将使用MyBatis的SqlSession对象,通过Mapper接口来调用存储过程。 1. 配置MyBatis: 在Spring MVC项目中,你需要配置MyBatis与Spring的整合,这通常涉及到`mybatis-config.xml`,`sqlSessionFactory`和`...
然后,在对应的Mapper XML文件(`EmployeeMapper.xml`)中,编写调用存储过程的SQL语句: ```xml {call INSERT_EMPLOYEE(#{employeeId, mode=IN, jdbcType=NUMERIC}, #{firstName, mode=IN, jdbcType=VARCHAR}...
当与PostgreSQL数据库配合使用时,可能会遇到需要调用存储过程或自定义函数的情况,特别是当这些函数接收数组作为参数时。本篇文章将详细介绍如何在MyBatis中调用PostgreSQL存储过程,尤其是如何处理数组类型的入参...
在调用存储过程时,我们需要利用MyBatis提供的API和配置机制来实现。 1. **配置MyBatis**:在`mybatis-config.xml`配置文件中,你需要添加数据库连接信息,例如数据源、驱动类等。同时,也需要将你的Mapper接口文件...
- 调用存储过程和函数可能涉及多条SQL语句,MyBatis的事务管理机制能确保操作的原子性。 - 可以手动控制事务,如在Service层开启和提交,或使用Spring的声明式事务管理。 7. **性能优化** - 合理设计存储过程和...
注意`statementType="CALLABLE"`表明这是一个调用存储过程的语句,而`#{}`是MyBatis的占位符,用于传递参数。 4. **调用存储过程**: 在Java代码中,通过SqlSession对象的`selectOne`或`execute`方法来调用Mapper...
### Java调用存储过程——传入集合参数:深入解析与实践 #### 核心知识点概览 在Java应用中,调用数据库存储过程时,往往需要处理复杂的参数传递,特别是当参数为集合类型时,这一过程变得更加具有挑战性。本文将...