广告
返回顶部
首页 > 资讯 > 后端开发 > Python >springboot如何初始化执行sql语句
  • 610
分享到

springboot如何初始化执行sql语句

2024-04-02 19:04:59 610人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

SpringBoot初始化执行sql语句 开发的时候需要增加一些函数和表,同时因为一些基础数据例如字典表也需要插入一些数据,当然我可以跟组员说一声然后把sql语句给他们在本地执行,但

SpringBoot初始化执行sql语句

开发的时候需要增加一些函数和表,同时因为一些基础数据例如字典表也需要插入一些数据,当然我可以跟组员说一声然后把sql语句给他们在本地执行,但是这样太low,不够自动化

于是就开始研究如何在springboot启动时执行sql语句

最后查到资料


spring.datasource.schema=classpath:schema.sql

这个配置项决定建库文件的位置,注意classpath,之前我在网上查找资料都没有这个classpath,结果我的schema.sql文件放在哪都不好使,后来加上classpath才好用,文件放在resource下面就行了

我发现后面才是坑的地方,建立方法。

新建方法,首先要先删掉它,不然会报错,当然,方法里没有数据,自然想删就删,但是除此之外还有很多坑


drop function if exists `getChildrenProductName`;|
create function `getChildrenProductName`(orgid varchar(50))
returns varchar(4000)
BEGIN
DECLARE `oTemp` VARCHAR(4000);
DECLARE `oTempChild` VARCHAR(4000);
DECLARE `oTempName` VARCHAR(4000);
DECLARE `oTempChildName` VARCHAR(4000);
DECLARE i int;
SET oTemp = CAST(orgid AS CHAR);
SET oTempChild = CAST(orgid AS CHAR);
set oTempName = '$';
set oTempChildName = '';
set i = 0;
WHILE oTempChild IS NOT NULL
DO
if i>0 then
set oTempName = concat(oTempName,",",oTempChildName);
end if;
SET oTemp = CONCAT(oTemp,',',oTempChild);
set i = i +1;
SELECT GROUP_CONCAT(p.product_name,p.partnum) into oTempChildName FROM product p
left join bom b on b.PartID = p.PartID
 WHERE FIND_IN_SET(b.ParentPartID,oTempChild) > 0;
SELECT GROUP_CONCAT(p.PartID) INTO oTempChild FROM product p
left join bom b on b.PartID = p.PartID
 WHERE FIND_IN_SET(b.ParentPartID,oTempChild) > 0;
END WHILE;
RETURN oTempName;
END;|

我这个人做事是步步为营的,都是先在数据库里执行了sql语句能用才会写上去的,但是我发现在Mysql中能使用,放到schema.sql语句中就不好使了。在网上找了半天资料,发现没有提到这个问题的

过程就不说了,折腾了半天,我debug才发现,springboot框架把默认是按;号来分割语句的,所以创建函数时,他就把整个创建的语句按;号分割了,自然就报错了,这就是我在上面使用 | 的原因

当然,这也要配置


spring.datasource.separator=|

这样就可以了

对了,还有插入数据的需要,因为我是后添加的数据,所以不能重复添加,只有不存在数据才能添加,这个方法是我网上找的,可以用


INSERT INTO table(field1, field2, fieldn) SELECT 'field1', 'field2', 'fieldn' FROM DUAL WHERE NOT EXISTS(SELECT field FROM table WHERE field = ?)

springboot项目中自己编写sql语句并调用

第一步:在 mapper 的接口中定义方法(使用到的PublishVo对象需要自己定义):

第二步:在 mapper 对应的 xml 文件中写 SQL 语句:

注意:xml 文件中 select 标签的 id 属性就是上一步在 mapper 接口中定义的那个方法名,resultType 就是返回的类型,在上一步的 mapper 接口中的返回类型是自定义的实体类型 PublishVo,因此就写上实体类 PublishVo 的全路径。

SQL语句的条件值要使用#,不能使用$,因为$会产生SQL注入问题。

第三步: 在 Controller 中编写 mapper 的调用

第四步:编写 service:

第五步:编写 service 的实现类:

然后再前端写方法调用后端的接口即可

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: springboot如何初始化执行sql语句

本文链接: https://www.lsjlt.com/news/128781.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • springboot如何初始化执行sql语句
    springboot初始化执行sql语句 开发的时候需要增加一些函数和表,同时因为一些基础数据例如字典表也需要插入一些数据,当然我可以跟组员说一声然后把sql语句给他们在本地执行,但...
    99+
    2022-11-12
  • SpringBoot如何启动并初始化执行sql脚本
    这篇“SpringBoot如何启动并初始化执行sql脚本”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoot如...
    99+
    2023-07-05
  • SpringBoot启动并初始化执行sql脚本问题
    目录SpringBoot启动并初始化执行sql脚本我们先看一下源码下面我们验证一下这两种方式SpringBoot项目在启动时执行指定sql文件1. 启动时执行2. 执行多个sql文件...
    99+
    2023-01-12
    SpringBoot启动 SpringBoot初始化 SpringBoot初始化执行sql
  • PHP如何初始化PDO及原始SQL语句操作
    目录PDO 实例dns 参数PDO 对象属性查询语句普通查询及遍历查询结果集(数组、对象)查询结果集(类)查询结果集(指定字段)增、删、改操作增加操作修改操作删除操作总结PDO 实例...
    99+
    2022-11-12
  • sql语句执行过慢如何优化
    优化 SQL 语句的执行速度可以采取以下几种方法:1. 索引优化:确保表的关键字段上创建了正确的索引,以加快查询速度。可以使用 EX...
    99+
    2023-08-19
    sql
  • mdb中如何执行sql语句
    在MDB(Microsoft Access数据库)中执行SQL语句,可以通过以下步骤完成:1. 打开Microsoft Access...
    99+
    2023-10-12
    mdb sql
  • navicat表如何执行sql语句
    小编给大家分享一下navicat表如何执行sql语句,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、首先,打开navicat,选择要操作的数据库。2、接着点击查询,这里有两个查询,随便点...
    99+
    2022-10-18
  • Entity Framework中如何执行sql语句
    这篇文章主要介绍Entity Framework中如何执行sql语句,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、为什么要在EF中执行SQL语句使用EF操作数据库,可以避免写SQL语句,完成使用Linq...
    99+
    2023-06-29
  • springboot实现执行sql语句打印到控制台
    springboot 执行sql语句打印到控制台 1.简介 每当写完持久化语句时肯定免不了要查漏补缺一波。这里就可以将执行的sql打印到控制台来检查sql语句哪里出了问题。 2.配置...
    99+
    2022-11-12
  • 如何执行SQL语句进行表备份
    这篇文章主要介绍“如何执行SQL语句进行表备份”,在日常操作中,相信很多人在如何执行SQL语句进行表备份问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何执行SQL语句进行表...
    99+
    2022-10-19
  • java如何使用jdbc执行sql语句
    要使用Java中的JDBC执行SQL语句,你需要执行以下步骤:1. 导入JDBC相关的包:```javaimport java.sq...
    99+
    2023-09-20
    java jdbc sql
  • sql语句执行失败如何解决
    当SQL语句执行失败时,可以采取以下步骤进行解决:1. 检查SQL语句的语法:确保SQL语句没有拼写错误、语法错误或者缺少必要的关键...
    99+
    2023-09-23
    sql
  • 如何查询Oracle正在执行的sql语句及执行该语句的用户
    这篇文章主要介绍了如何查询Oracle正在执行的sql语句及执行该语句的用户,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。--查询Oracl...
    99+
    2022-10-18
  • MySQL中cron如何定时执行SQL语句
    这篇文章主要介绍MySQL中cron如何定时执行SQL语句,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql脚本内容如下:#!/bin/bashmysql -uroot -pm...
    99+
    2022-10-18
  • mysql如何设置sql语句执行超时
    这篇文章主要介绍了mysql如何设置sql语句执行超时,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。mysql 5.6 及以后,有语句执行超...
    99+
    2022-10-18
  • 浅谈MyBatis 如何执行一条 SQL语句
    目录前言 基础组件 工作流程 初步使用 详细流程 获取 MapperProxy 对象 缓存执行方法 构造参数 获取需要执行的 SQL 对象 执行 SQL 语句 总结 前言 Myba...
    99+
    2022-11-12
  • Oracle中sql语句如何执行日志查询
    目录oracle sql语句执行日志查询Oracle查询某天sql执行记录Oracle sql语句执行日志查询 在Oracle数据中,我们经常编写sql语句,有时我们会编写一些特别长的sql语句,而有一些意外导致sql消...
    99+
    2022-12-06
    Oraclesql语句 sql执行日志查询 Oracle执行sql语句
  • 一条SQL查询语句是如何执行的?
    导读 Mysql在中小型企业中是个香饽饽,目前主流的数据库之一,几乎没有一个后端开发者不会使用的,但是作为一个老司机,仅仅会用真的不够。 今天陈某透过一个简单的查询语句来讲述在Mysql内部的执行过程。 selec&...
    99+
    2019-06-13
    一条SQL查询语句是如何执行的?
  • 一条SQL更新语句是如何执行的
    文章首发于公众号「蝉沐风」,认真写好每一篇文章,欢迎大家关注交流 这是图解MySQL的第2篇文章,这篇文章会通过一条SQL更新语句的执行流程让大家清楚地明白: 什么是InnoDB页?缓存页又是什么?为什么这么设计? 什么是表空间?不...
    99+
    2014-08-03
    一条SQL更新语句是如何执行的
  • Java MyBatis是如何执行一条SQL语句的
    目录背景阅读环境阅读过程加载XML的过程创建Mapper获得一个Mapper执行一个Mapper的方法结论背景 在前两天的一次面试中,面试官问了一个和标题一样的问题,由于一直认为My...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作