Spring Boot Mybatis 最基本使用mysql存儲過程


首先聲明:只是用最簡單的方法大致了解如何用存儲過程開發,如果需要查看存儲過程創建語法的自行百度搜索

一、首先創建最基本的數據庫

CREATE TABLE `t_user` (
  `id` varchar(255) NOT NULL,
  `user_name` varchar(255) DEFAULT NULL,
  `user_acct` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

按照版本不同進行適當修改,不要說什么sql不能用,這么簡單的sql,自己手寫一個適合的也很容易吧。

二、創建最簡單的存儲過程

CREATE PROCEDURE select_user(IN userId INT)
BEGIN
SELECT `name` FROM sys_user WHERE id = userId;
END

創建一個存儲過程 IN 是輸入參數 可以理解為查詢條件傳參

 

三、知道如何在mysql中更改和調用存儲過程

SET @userId = '1';
CALL select_user(@userId);

 設置傳入參數

 

 

 四、創建基本的SpringBoot項目

通過idea直接進行創建、很簡單,簡單的SpringMvc項目

加入mysql架包和yml或properties文件

POM文件

 <!--mysql需要jar包 start-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.6</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
<!--mysql需要jar包 end-->

application.yml或application.properties(填寫自己對應的數據庫)

spring:
 datasource:
    name: dataSource
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/owner?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=UTC
    username: root
    password: root

 

五、編寫controller,service,dao,mapper.xml文件

ProcedureController(注意:我的是post請求,如果不會用postman的童鞋,請更改為get請求,注解為@GetMapper)

 

@RestController
@RequestMapping("procedure")
public class ProcedureController {
    @Resource
    private ProcedureService procedureService;
    @PostMapping("/getParam")
    public String getParam() {
        Map<String,String> para = new HashMap<>(1);
        para.put("userId","1");
        String str = procedureService.getParam(para);
        return str;
    }
}

 

ProduceServiceImpl 面向接口編程(可以按照條件自己更改)debug調試的話可以知道str中存放的具體數據是什么,
@Service
public class ProduceServiceImpl implements ProcedureService {
    @Resource
    private ProcedureDao procedureDao;
    @Override
    public String getParam(Map<String, String> param) {
        Map<String , String> str =  procedureDao.getParam(param);
        return "123";
    }
}
ProcedureDao

 

public interface ProcedureDao {
    Map<String , String> getParam(Map<String,String> param);
}

 

ProcedureDaoMapper.xml(記得一定要有返回類型)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.example.junittest.dao.ProcedureDao">
    <parameterMap type="Map" id="getMap">
        <parameter property="userId" jdbcType="VARCHAR" javaType="String" mode="IN"/>
    </parameterMap>
    <select id="getParam" parameterMap="getMap" statementType="CALLABLE" resultType="map">
       {CALL select_user(?)}
    </select>
</mapper>

六、運行調用接口即可

接口地址:http://localhost:8080/procedure/getParam

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM