欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

从0开始学存储过程(二)---项目实战篇

程序员文章站 2024-03-16 11:07:10
...

如果你对MySQL的存储过程基础知识还不了解请看我上一篇文章从0开始学存储过程(一)
说明:这里主要讲解在项目中如何运用存储过程,我这里使用的工具是IDEA,项目搭建使用Springboot+MySQL+SSM,测试工具使用postman

一.目录结构

从0开始学存储过程(二)---项目实战篇
项目是怎么搭建的不是这里的重点,所以不打算讲。

二、数据库表employee

从0开始学存储过程(二)---项目实战篇

三、创建Employee实体

从0开始学存储过程(二)---项目实战篇

四、创建EmployeeMapper

从0开始学存储过程(二)---项目实战篇

五、创建addEmployee1添加功能的存储过程

DELIMITER $$

CREATE
   
    PROCEDURE `demo`.`addEmployee1`(in e_empId integer,in e_empName VARCHAR(50),in e_empSex varchar(50))
    
    BEGIN
	insert into employee (empId,empName,empSex) VALUES (e_empId,e_empName,e_empSex);
	
    END$$

DELIMITER ;

六、在EmployeeMapper.xml调用addEmployee1存储过程

<!--增加用户-->
    <insert id="addEmployee" parameterType="cn.test.demo.exercise.pojo.Employee" statementType="CALLABLE">
        {call addEmployee1(#{empId,mode=IN},#{empName,mode=IN},#{empSex,mode=IN})}
    </insert>

七、创建deleteEmployee1存储过程

DELIMITER $$

USE `demo`$$

DROP PROCEDURE IF EXISTS `delectEmployee1`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `delectEmployee1`(IN e_empId INTEGER)
BEGIN
	DELETE FROM employee WHERE empId=e_empId;
    END$$

DELIMITER ;

八、在EmployeeMapper.xml调用deleteEmployee1存储过程

<!--删除用户-->
    <delete id="deleteEmployee" parameterType="Integer" statementType="CALLABLE">
        {call delectEmployee1(#{empId,mode=IN})}
    </delete>

九、创建selectEmployee1存储过程

DELIMITER $$

USE `demo`$$

DROP PROCEDURE IF EXISTS `selectEmployee1`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `selectEmployee1`(IN e_empId INTEGER)
BEGIN
	SELECT * FROM employee WHERE empId=e_empId;
    END$$

DELIMITER ;

十、在EmployeeMapper.xml调用selectEmployee1存储过程

<!--根据id查询用户-->
    <select id="getEmployeeById" parameterType="Integer" resultType="cn.test.demo.exercise.pojo.Employee" statementType="CALLABLE">
        {call selectEmployee1(#{empId,mode=IN})}
    </select>

十一、创建updateEmployee1存储过程

DELIMITER $$

USE `demo`$$

DROP PROCEDURE IF EXISTS `updateEmployee1`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `updateEmployee1`(IN e_empName VARCHAR(50),IN e_empId INTEGER)
BEGIN
	UPDATE employee SET empName=e_empName WHERE empId=e_empId;
    END$$

DELIMITER ;

十二、在EmployeeMapper.xml调用updateEmployee1存储过程

<!--更新用户-->
    <update id="updateEmployee" parameterType="cn.test.demo.exercise.pojo.Employee" statementType="CALLABLE">
        {call updateEmployee1(#{empName,mode=IN},#{empId,mode=IN})}
    </update>

十三、创建Dao

package cn.test.demo.exercise.dao;

import cn.test.demo.exercise.pojo.Employee;

public interface EmployeeMapper {

    //增加用户
    public void addEmployee(Employee employee);
    //删除用户
    public boolean deleteEmployee(Integer empId);
    //根据id查询用户
    public Employee getEmployeeById(Integer empId);
    //更新用户
    public boolean updateEmployee(Employee employee);

}

在项目中一个简单的增删改查的demo就写好了。项目我上传了,需要的可以去下载。
如果你对MySQL的存储过程基础知识还不了解请看我上一篇文章从0开始学存储过程(一)