首先声明:只是用最简单的方法大致了解如何用存储过程开发,如果需要查看存储过程创建语法的自行百度搜索
一、首先创建最基本的数据库
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文件
com.alibaba
druid
1.1.6
mysql
mysql-connector-java
runtime
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 classProcedureController {
@ResourceprivateProcedureService procedureService;
@PostMapping("/getParam")publicString getParam() {
Map para = new HashMap<>(1);
para.put("userId","1");
String str=procedureService.getParam(para);returnstr;
}
}
ProduceServiceImpl 面向接口编程(可以按照条件自己更改)debug调试的话可以知道str中存放的具体数据是什么,
@Servicepublic class ProduceServiceImpl implementsProcedureService {
@ResourceprivateProcedureDao procedureDao;
@Overridepublic String getParam(Mapparam) {
Map str =procedureDao.getParam(param);return "123";
}
}
ProcedureDao
public interfaceProcedureDao {
Map getParam(Mapparam);
}
ProcedureDaoMapper.xml(记得一定要有返回类型)
{CALL select_user(?)}
六、运行调用接口即可
接口地址:http://localhost:8080/procedure/getParam