【Mybatis】基础增删改查

本文介绍了如何在SpringBoot项目中添加MySQL和Mybatis依赖,包括XML与注解方式的使用,企业建表规约,单元测试配置,以及mybatis日志设置。详细讲解了SQL操作和结果映射的多种方法。
摘要由CSDN通过智能技术生成

一.创建SpringBoot项目

创建新项目需要添加的依赖

当然如果是以前的项目也可以直接在pom.xml文件中添加依赖:

MySQL Driver依赖

<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <scope>runtime</scope>
</dependency>

Mybatis Frameworl依赖

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.3.1</version>
</dependency>

还有第二种方式导入依赖

>pom.xml文件里面

>右击generate        >Edit Starters

>勾选对应的依赖,点击OK即可.

二.Mybatis

Mybatis的写法有两种

1.xml

2.注解

步骤

1.引入Mybatis依赖  引入对应数据库的依赖,比如mysql

2.配置数据库的相关信息

3.定义Java对象

4.写实现

企业建表规约

参考阿里建表规约

1.字段名/表名 全部小写

2.表必备三字段

id

gmt_create创建时间

gmt_modifies修改时间

3.逻辑删除和物理删除

逻辑删除:指从逻辑上进行数据删除

物理删除:从硬盘上进行数据删除 delete

单元测试

在需要写单元测试的类中,右键点击generate,选择Test

配置mybatis相关日志

#指定mybatis输出⽇志的位置, 输出控制台

mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

建议只出现在开发环境中,不要出现在线上环境

日志的打印,也是影响性能的 ;

灰度发布:是指发布环境 . 比如发布环境有200台,发布的时候是一批一批的发布 .

通常在刚开始的时候发布1台,也就是观察一段时间后,如果没有问题,继续下一批.

传递参数

如果只有一个参数, sql的名称可以是任意的.

三.注解方式

1.添加

//设置返回自增id
    @Options(useGeneratedKeys = true,keyProperty = "id")
    @Insert("insert into userinfo (username,password,age,gender,phone)"+
    "values(#{username},#{password},#{age},#{gender},#{phone})")
    Integer insert(UserInfo userInfo);

2.删除

@Select("select * from userinfo")
    List<UserInfo> selectAll();

3.修改

@Update("update userinfo set age=#{age} where id=#{id}")
    Integer update(UserInfo userInfo);

4.查询

@Select("select * from userinfo")
    List<UserInfo> selectAll2();

结果映射

Mybatis会自动的根据数据库的字段名和Java对象的属性名,进行映射,如果名称一样就进行赋值

注解方式有3种方式进行结果映射

4.1对mysql的字段进行重命名

4.2使用注解的方式

@Results注解映射 , 再用@ResultMap注解复用映射

4.3配置的方式

在配置文件中配置已以下内容,mysql字段就会完成自动转驼峰

注意:注解和xml方式是可以共存的

四.xml方式

xml的方式比注解方式稍微复杂一点,分为以下三步 :

1.配置数据库

和注解方式一样

2.指明xml的路径

在配置文件中指明xml的路径,写入以下内容

# 配置 mybatis xml 的⽂件路径,在 resources/mapper 创建所有表的 xml ⽂件 mapper:

mybatis.mapper-locations: classpath:mapper/**Mapper.xml

注意:路径名是程序员自定义的

3.写xml的实现

这是一个例子:

接口的定义

实现

xml文件配置SQL , 下面是模板

<?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">

        //namespace更改成具体要要构造mapper类的全限定路径
<mapper namespace="com.example.mybatisforbit.mapper.UserInfoXMLMapper"> 

       
 

</mapper>

结果类型就是返回的类型,不管返回的是对象还是list,此处定义的都是返回的数据的类型,比如这里返回的是UserInfo类型的数据.

namespace表示要实现哪个接口,要写全限定类名.

3.1添加

实现

重命名

3.2删除

3.3修改

3.4查询

结果映射

回忆注解方式中结果映射的三种解决方法

1.给sql字段起别名

2.@Result注解

3.配置自动转驼峰

mybatis.configuration.map-underscore-to-camel-case:true#配置驼峰⾃动转换

  

xml的结果映射 1和3 方式都是可以的.

除此之外还有一种与@Results相似的方式: 利用<resultMap>标签来进行数据库字段名和类属性的映射.

使用优化算法,以优化VMD算法的惩罚因子惩罚因子 (α) 和分解层数 (K)。 1、将量子粒子群优化(QPSO)算法与变分模态分解(VMD)算法结合 VMD算法背景: VMD算法是一种自适应信号分解算法,主要用于分解信号为不同频率带宽的模态。 VMD的关键参数包括: 惩罚因子 α:控制带宽的限制。 分解层数 K:决定分解出的模态数。 QPSO算法背景: 量子粒子群优化(QPSO)是一种基于粒子群优化(PSO)的一种改进算法,通过量子行为模型增强全局搜索能力。 QPSO通过粒子的量子行为使其在搜索空间中不受位置限制,从而提高算法的收敛速度与全局优化能力。 任务: 使用QPSO优化VMD中的惩罚因子 α 和分解层数 K,以获得信号分解的最佳效果。 计划: 定义适应度函数:适应度函数根据VMD分解的效果来定义,通常使用重构信号的误差(例如均方误差、交叉熵等)来衡量分解的质量。 初始化QPSO粒子:定义粒子的位置和速度,表示 α 和 K 两个参数。初始化时需要在一个合理的范围内为每个粒子分配初始位置。 执行VMD分解:对每一组 α 和 K 参数,运行VMD算法分解信号。 更新QPSO粒子:使用QPSO算法更新粒子的状态,根据适应度函数调整粒子的搜索方向和位置。 迭代求解:重复QPSO的粒子更新步骤,直到满足终止条件(如适应度函数达到设定阈值,或最大迭代次数)。 输出优化结果:最终,QPSO算法会返回一个优化的 α 和 K,从而使VMD分解效果最佳。 2、将极光粒子(PLO)算法与变分模态分解(VMD)算法结合 PLO的优点与适用性 强大的全局搜索能力:PLO通过模拟极光粒子的运动,能够更高效地探索复杂的多峰优化问题,避免陷入局部最优。 鲁棒性强:PLO在面对高维、多模态问题时有较好的适应性,因此适合海上风电时间序列这种非线性、多噪声的数据。 应用场景:PLO适合用于优化VMD参数(α 和 K),并将其用于风电时间序列的预测任务。 进一步优化的建议 a. 实现更细致的PLO更新策略,优化极光粒子的运动模型。 b. 将PLO优化后的VMD应用于真实的海上风电数据,结合LSTM或XGBoost等模型进行风电功率预测。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值