Spring Boot Mybatis 最基本使用mysql存储过程
首先声明:只是用最简单的方法大致了解如何用存储过程开发,如果需要查看存储过程创建语法的自行百度搜索
一、首先创建最基本的数据库
CREATE TABLE `t_user` (
`id` varchar() NOT NULL,
`user_name` varchar() DEFAULT NULL,
`user_acct` varchar() 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 = '';
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
Spring Boot Mybatis 最基本使用mysql存储过程的更多相关文章
- (45). Spring Boot MyBatis连接Mysql数据库【从零开始学Spring Boot】
大家在开发的时候,会喜欢jdbcTemplate操作数据库,有喜欢JPA操作数据库的,有喜欢MyBatis操作数据库的,对于这些我个人觉得哪个使用顺手就使用哪个就好了,并没有一定要使用哪个,个人在实际 ...
- Spring boot+Mybatis+MySQL插入中文乱码
转载:https://www.jianshu.com/p/bd0311a33c16 现象: 搭建spring boot+mybatis+mysql时出现插入mysql的中文出现乱码???. mys ...
- 详解spring boot mybatis全注解化
本文重点介绍spring boot mybatis 注解化的实例代码 1.pom.xml //引入mybatis <dependency> <groupId>org.mybat ...
- spring boot + mybatis + druid
因为在用到spring boot + mybatis的项目时候,经常发生访问接口卡,服务器项目用了几天就很卡的甚至不能访问的情况,而我们的项目和数据库都是好了,考虑到可能时数据库连接的问题,所以我打算 ...
- Spring Boot入门教程2-1、使用Spring Boot+MyBatis访问数据库(CURD)注解版
一.前言 什么是MyBatis?MyBatis是目前Java平台最为流行的ORM框架https://baike.baidu.com/item/MyBatis/2824918 本篇开发环境1.操作系统: ...
- spring boot + mybatis + druid配置实践
最近开始搭建spring boot工程,将自身实践分享出来,本文将讲述spring boot + mybatis + druid的配置方案. pom.xml需要引入mybatis 启动依赖: < ...
- spring boot+mybatis+quartz项目的搭建完整版
1. 利用spring boot提供的工具(http://start.spring.io/)自动生成一个标准的spring boot项目架构 2. 因为这里我们是搭建spring boot+mybat ...
- 快速搭建一个Spring Boot + MyBatis的开发框架
前言:Spring Boot的自动化配置确实非常强大,为了方便大家把项目迁移到Spring Boot,特意总结了一下如何快速搭建一个Spring Boot + MyBatis的简易文档,下面是简单的步 ...
- Spring Boot + Mybatis + Redis二级缓存开发指南
Spring Boot + Mybatis + Redis二级缓存开发指南 背景 Spring-Boot因其提供了各种开箱即用的插件,使得它成为了当今最为主流的Java Web开发框架之一.Mybat ...
随机推荐
- Jomoo的模板
目录 1 杂类算法 1.1 快读模板 1.2 O(1) int64 乘法 2 图论算法 2.1 树类 - Trie 2.2 树类 - 并查集(NB version) 2.3 树类 - LCA 2.4 ...
- enumerate用法总结
enumerate在字典上是枚举.列举的意思 对于一个可迭代的(iterable)/可遍历的对象(如列表.字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值 enumerat ...
- java开发中常用的Liunx操作命令
查看所有端口的占用情况 netstat -nultp 其中State值为LISTEN则表示已经被占用 查看某个端口的占用情况: netstat -anp |grep 端口号 在liunx中启动tomc ...
- Javascript 垃圾回收方法
Javascript 垃圾回收方法 标记清除(mark and sweep) 这是 JavaScript 最常见的垃圾回收方式,当变量进入执行环境的时候,比如函数中声明一个变量,垃圾回收器将其标记为& ...
- Java获取配置文件中的属性
获取配置文件的属性值 example 目标配置文件jdbc.properties,现想要在java类里面调用opcl的url jdbc.url=jdbc:mysql://localhost:3306/ ...
- jsonp跨域 封装通用方法
jsonp跨域 封装通用方法 //用法如下 jsonp({ url:"https://www.xxxx.com", params:{wd:'b'}, callback:'show' ...
- Redis有哪几种数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). String(字符串) string 是 redi ...
- 【BZOJ 3771】Triple
Problem Description 给出 \(n\) 个物品,第 \(i\) 个物品体积为 \(a_i\) . 对于每个体积 \(V\) ,求选出 \(3\) 个物品,体积之和为 \(V\) 的方 ...
- 基于Vue的前后端分离项目实践
一.为什么需要前后端分离 1.1什么是前后端分离 前后端分离这个词刚在毕业(15年)那会就听说过,但是直到17年前都没有接触过前后端分离的项目.怎么理解前后端分离?直观的感觉就是前后端分开去做,即功 ...
- 如何利用PS将照片背景替换为白色
需求:将照片中的蓝底换成白底: 操作步骤: 1.打开图片,点击背景图层: 2.利用套索,选中除背景外的区域: 3.右键,反选: 4.填充为“白色”,确定,保存: