Mybaits(14)存储过程

一、MyBatis存储过程调用

1.创建存储过程

CREATE PROCEDURE save_user_info (
OUT id INTEGER,
IN user_name VARCHAR ( 20 ),
IN real_name VARCHAR ( 20 ),
IN sex VARCHAR ( 20 ),
IN moble VARCHAR ( 20 ),
IN email VARCHAR ( 20 ),
IN note VARCHAR ( 20 )
) BEGIN
INSERT INTO t_user ( user_name, real_name, sex, moble, email, note )
VALUES
    ( user_name, real_name, sex, moble, email, note );

SET id = LAST_INSERT_ID( );

END

OUT:出参

IN:入参

2.持久层Dao层增加方法

/**
     * 保存用户
     * @param user
     */
    public void saveUser(User user);

3.持久层配置文件编写

IUserDao.xml

<insert id="saveUser" parameterType="userMapper"
        statementType="CALLABLE">
        {call
        save_user_info(#{id,mode=OUT,jdbcType=INTEGER},#{userName,mode=IN},#{realName,mode=IN},#{sex,mode=IN},#{moble,mode=IN},#{email,mode=IN},#{note,mode=IN})}

    </insert>

4.编写测试类

@Test
    public void saveUser() {
        // 5.创建Dao的代理对象
        session = factory.openSession(true);
        userDao = session.getMapper(IUserDao.class);
        User u = new User();
        u.setUserName("詹三");
        u.setRealName("张三");
        u.setSex(null);
        u.setMoble("12121212");
        u.setEmail("[email protected]");
        u.setNote("备注");
        int id = userDao.saveUser(u);
        System.out.println("==="+id);
    }

CREATE PROCEDURE save_user_info (OUT id INTEGER,IN user_name VARCHAR ( 20 ),IN real_name VARCHAR ( 20 ),IN sex VARCHAR ( 20 ),IN moble VARCHAR ( 20 ),IN email VARCHAR ( 20 ),IN note VARCHAR ( 20 ) ) BEGININSERT INTO t_user ( user_name, real_name, sex, moble, email, note )VALUES( user_name, real_name, sex, moble, email, note );
SET id = LAST_INSERT_ID( );
END

原文地址:https://www.cnblogs.com/xhbJava/p/12402079.html

时间: 2024-10-10 17:46:26

Mybaits(14)存储过程的相关文章

5.MyBaits调用存储过程

1.创建一个javaweb项目MyBatis_Part4_Procedure 2.在src下创建procedure.sql文件 1 --创建表 2 create table p_user( 3 id number primary key, 4 name varchar2(20), 5 sex varchar2(2) 6 ); 7 8 create sequence seq_puser; 9 10 insert into p_user values(seq_puser.nextval,'A','男

mybaits使用存储过程

如何使用Mybaits调用数据库存储过程,按以下顺序Oracle案例库: 1.在数据库中创建以下存储过程: create or replace procedure pro_hello(p_result out varchar2) is begin select * from 表名 where 条件=p_result end; 2.编写SQL映射文件mapper.xml: <select id="proHello" statementType="CALLABLE"

sql2(约束、日期、isnull、case、exists、cast\convert、索引、视图、存储过程、触发器、备份与还原)

1 . Primary Key 约束 SQLServer 中有五种约束, Primary Key 约束. Foreign Key 约束. Unique 约束. Default 约束和 Check 约束. 在表中常有一列或多列的组合,其值能唯一标识表中的每一行. 这样的一列或多列成为表的主键(PrimaryKey).一个表只能有一个主键,而且主键约束中的列不能为空值.只有主键列才能被作为其他表的外键所创建. 创建主键约束可以右键单击表,选择设计 . 选中要创建主键的列,然后单击上面的小钥匙. 也可

2015-10-20 SQL 第二次课 (约束、日期、isnull、case、exists、cast\convert、索引、视图、存储过程、触发器、备份与还原)

1 . Primary Key 约束 SQLServer 中有五种约束, Primary Key 约束. Foreign Key 约束. Unique 约束. Default 约束和 Check 约束. 在表中常有一列或多列的组合,其值能唯一标识表中的每一行. 这样的一列或多列成为表的主键(PrimaryKey).一个表只能有一个主键,而且主键约束中的列不能为空值.只有主键列才能被作为其他表的外键所创建. 创建主键约束可以右键单击表,选择设计 . 选中要创建主键的列,然后单击上面的小钥匙. 也可

数据库知识点总结

1. 数据库三范式是什么? 第一范式:表中每个字段都不能再分. 第二范式:满足第一范式并且表中的非主键字段都依赖于主键字段. 第三范式:满足第二范式并且表中的非主键字段必须不传递依赖于主键字段. 2. 什么是数据库事务? 事务具有四大特性:一致性.原子性.隔离性.持久性. 数据库事务是指:几个SQL语句,要么全部执行成功,要么全部执行失败.比如银行转账就是事务的典型场景. 数据库事务的三个常用命令:Begin Transaction.Commit Transaction.RollBack Tra

Oracle常用

Oracle恢复误删的数据或表,解除锁定SQL或table 转载于: http://renjie120.iteye.com/ 注释:本文转自网络,转载请注明 注意:数据库版本是10g,不过大部分9i的也适用,闪回9i就没有. 1.曾经不小心把开发库的数据库表全部删除,当时吓的要死.结果找到下面的语句恢复到了1个小时之前的数据!很简单. 注意使用管理员登录系统: select * from 表名 as of timestamp sysdate-1/12   //查询两个小时前的某表数据!既然两小时

数据库应用SQL编写规范

1. 编程规范 本章讲述ORACLE数据库SQL脚本编码规范. 1.1. 总述 1.1.1. 编码规范 1)编写脚本时,Oracle保留字大写,其他一律使用小写,除非必要(如:作字符串时或注释语句中): 2)脚本必须规范,SQL编写不能采用缩略写法:如INSERT INTO中的INTO不能省略:INTO后面要列出字段名: 3)语句内的空格,统一为一个空格: 4)表定义中,字段名.字段类型(长度).缺省.(非)空.字段注释都必须左对齐: 5)使用空格键对齐,不要使用Tab键: 6)运算符前后,各保

MySQL学习总结(摘抄)

1.数据库概述 简 而言之,数据库(DataBase)就是一个存储数据的仓库.为了方便数据的存储和管理,将数据按照特定的规律存储在磁盘上.通过数据库管理系统,可以有 效的组织和管理存储在数据库中的数据.如今,已经存在的Oracle.SQLServer.MySQL等诸多优秀的数据库. 详解内容: 数据存储方式 数据库在开发中的作用 数据库访问技术 MySQL数据库的介绍 数据库泛型 SQL语言 常见数据库系统 如果学习数据库 1.1 数据库理论基础 数据库能够将数据按照特定的规律组织起来.那么,数

嵌入式相关1

1. 如何在C中初始化一个字符数组. 这个问题看似很简单,但是我们要将最简单的问题用最严谨的态度来对待.关键的地方:初始化.字符型.数组.最简单的方法是char array[];.这个问题看似解决了,但是在初始化上好像还欠缺点什么,个人认为:char array[5]={'1','2','3','4','5'};或者char array[5]={"12345"};或者char array[2][10]={"China","Beijing"};也许

python 开发必备知识

Python基础语法入门(2天): 1.Python语言介绍.发展史.与其它语言的对比 2.编程语言分类.解释型vs编译型优缺点 3.Python环境安装.Pycharm IDE使用 4.基本语法:变量.常量命名规范.程序执行.编码区别 5.二进制的演化与运算 6..pyc是什么鬼? 7.实战案例:用户交互小程序 8.基本数据类型:int.str.bool.list.dict.set 9.流程控制:if.elif.else.for.while语句 10.break vs continue的作用