Mybatis调用Oracle中的存储过程和function
来源:互联网 发布:淘宝关键字 编辑:程序博客网 时间:2024/06/01 07:14
一、Mybatis调用存储过程
1 在数据库中创建以下的存储过程
create or replace procedure pro_hello(p_user_name in varchar2,p_result out varchar2) is
begin
p_result := 'hello,' || p_user_name;
end;
2 编写SQL映射文件mapper.xml
statementType里的CALLABLE是标注此sql为存储过程。
parameterType是标注要传的参数,看了一些资料不写parameterType的话默认传map。还是加上比较清晰
<select id="proHello" parameterType="java.util.map" statementType="CALLABLE">
{call pro_hello(#{uname,mode=IN,jdbcType=VARCHAR},#{result,mode=OUT,jdbcType=VARCHAR})}
</select>
3 编写JAVA代码调用存储过程
public class ProcedureTest {
public static void main(String[] args) throws IOException {
String resource = "mybatis.cfg.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);
SqlSession session = ssf.openSession();
try {
Map<String, String> param = new HashMap<String, String>();
param.put("uname", "zhangsan");
param.put("result", "");
String returnValue = (String) session.selectOne("User.proHello", param);
System.out.println("message=" + param.get("uname"));
System.out.println("result=" + param.get("result"));
System.out.println("returnValue=" + returnValue);
} catch (Exception e) {
e.printStackTrace();
} finally {
session.close();
}
}
}
二、Mybatis调用function
function带有返回值,假设一个oracle函数增加学生后返回成功与否的字符串
<select id="isMember" statementType="CALLABLE" parameterType="cn.StudentDto">
{#{result,mode=OUT,jdbvType=VARCHAR} = call
addStudent(#{num,mode=IN,jdbcType=DECIMAL},#{name,mode=IN,jdbcType=VARCHAR},#{rollInYear,mode=IN,jdbcType=Date},#{age,mode=OUT,jdbcType=INTEGER})}
</select>
1 在数据库中创建以下的存储过程
create or replace procedure pro_hello(p_user_name in varchar2,p_result out varchar2) is
begin
p_result := 'hello,' || p_user_name;
end;
2 编写SQL映射文件mapper.xml
statementType里的CALLABLE是标注此sql为存储过程。
parameterType是标注要传的参数,看了一些资料不写parameterType的话默认传map。还是加上比较清晰
<select id="proHello" parameterType="java.util.map" statementType="CALLABLE">
{call pro_hello(#{uname,mode=IN,jdbcType=VARCHAR},#{result,mode=OUT,jdbcType=VARCHAR})}
</select>
3 编写JAVA代码调用存储过程
public class ProcedureTest {
public static void main(String[] args) throws IOException {
String resource = "mybatis.cfg.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);
SqlSession session = ssf.openSession();
try {
Map<String, String> param = new HashMap<String, String>();
param.put("uname", "zhangsan");
param.put("result", "");
String returnValue = (String) session.selectOne("User.proHello", param);
System.out.println("message=" + param.get("uname"));
System.out.println("result=" + param.get("result"));
System.out.println("returnValue=" + returnValue);
} catch (Exception e) {
e.printStackTrace();
} finally {
session.close();
}
}
}
二、Mybatis调用function
function带有返回值,假设一个oracle函数增加学生后返回成功与否的字符串
<select id="isMember" statementType="CALLABLE" parameterType="cn.StudentDto">
{#{result,mode=OUT,jdbvType=VARCHAR} = call
addStudent(#{num,mode=IN,jdbcType=DECIMAL},#{name,mode=IN,jdbcType=VARCHAR},#{rollInYear,mode=IN,jdbcType=Date},#{age,mode=OUT,jdbcType=INTEGER})}
</select>
StudentDTO除了上述出现的学生信息字段外还需要String类型的result字段。
原帖地址:
http://chenjc-it.iteye.com/blog/1443432
http://shen84121062.iteye.com/blog/1213857
- Mybatis调用Oracle中的存储过程和function
- Mybatis调用Oracle中的存储过程和function
- Mybatis调用Oracle中的存储过程和function
- ibatis调用Oracle中的存储过程和function
- MYBATIS调用oracle存储过程
- mybatis调用oracle存储过程
- MyBatis调用Oracle存储过程
- Mybatis调用oracle 存储过程
- mybatis调用ORACLE存储过程
- Oracle创建存储过程及在Mybatis中的调用
- mybatis调用oracle存储过程 返回sys_refcursor
- mybatis 调用oracle存储过程 含输入输出
- Mybatis调用Oracle带包存储过程
- Mybatis调用Oracle带包存储过程
- 在 MyBatis 中调用Oracle存储过程
- mybatis调用存储过程(oracle)
- oracle 存储过程 PROCEDURE和 FUNCTION区别:
- 关于java程序调用oracle数据库中存储过程和function的解决办法
- thrift使用过程中的问题
- jquery的each()详细介绍
- socket阻塞与非阻塞,同步与异步I/O模型
- scribed 安装
- 在Ubuntu上为Android系统编写Linux内核驱动程序
- Mybatis调用Oracle中的存储过程和function
- C# 操作 MySQL 数据库(连接,查询,插入)
- Sybase触发器
- [easy_install]常用安装和卸载第三方库方法
- Hadoop中的RPC
- 为什么要用抽象类
- libvirt与qemu通信
- C# 操作 SQL Server(查询)
- 论我为什么想去实习--研究僧之反思