mysql数据库详解(二):mybatis与springboot整合

SpringBoot+Mybatis整合TDengine数据库和Mysql数据库的Demo 记录一下使用SpringBoot+Mybatis整合TDengine数据库和Mysql数据库的Demo,并且同时支持分页返回查询数据 阅读详情

作为一个稀有的Java妹子,所写的所有博客都只是当作自己的笔记,留下证据自己之前是有用心学习的~哈哈哈哈(如果有不对的地方,也请大家指出,不要悄悄咪咪的不告诉我)

一、引入相关的jar包

 <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jdbc</artifactId>
 </dependency>
 <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>1.3.2</version>
 </dependency>
 <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid-spring-boot-starter</artifactId>
      <version>1.1.21</version>
 </dependency>
 <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.47</version>
 </dependency>

 <dependency>
       <groupId>tk.mybatis</groupId>
       <artifactId>mapper</artifactId>
       <version>4.1.5</version>
 </dependency>

二、配置文件

server.port=8888
spring.datasource.druid.url=jdbc:mysql://192.168.7.104:3306/qqsk?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.druid.username=jiebai
spring.datasource.druid.password=123456
spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver

三、sqlSessionFactory配置

@Configuration
public class MybatisConfigurer {
    /**
     * 项目基础包名称,根据公司的项目修改
     */
    public static final String BASE_PACKAGE = "com.mybatis.demo";

    /**
     * Model所在包
     */
    public static final String MODEL_PACKAGE = BASE_PACKAGE + ".domain";


    /**
     * Mapper所在包
     */
    public static final String MAPPER_PACKAGE = BASE_PACKAGE + ".dao";


    /**
     * Mapper插件基础接口的完全限定名
     */
    public static final String MAPPER_INTERFACE_REFERENCE = "com.mybatis.demo.mapper.Mapper";

    @Bean
    public SqlSessionFactory sqlSessionFactoryBean(DataSource dataSource) throws Exception {
        SqlSessionFactoryBean factory = new SqlSessionFactoryBean();
        factory.setDataSource(dataSource);
        factory.setTypeAliasesPackage(MODEL_PACKAGE);
        // 添加XML目录
        ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
		//设置mapper文件的获取位置
        factory.setMapperLocations(resolver.getResources("classpath:mapper/*.xml"));
        return factory.getObject();
    }

    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer() {
        MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
        mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactoryBean");
        mapperScannerConfigurer.setBasePackage(MAPPER_PACKAGE);

        // 配置通用Mapper,详情请查阅官方文档
        Properties properties = new Properties();
        properties.setProperty("mappers", MAPPER_INTERFACE_REFERENCE);
        properties.setProperty("notEmpty", "false");
        properties.setProperty("IDENTITY", "MYSQL");
        mapperScannerConfigurer.setProperties(properties);

        return mapperScannerConfigurer;
    }

}

四、通用mapper接口

主要是继承已有的mapper方法,自己也可以封装一些常用的方法。

public interface Mapper<T> extends BaseMapper<T>, ConditionMapper<T>, IdsMapper<T>, InsertListMapper<T> {
}

这里我继承了tkmapper包里的接口,可以看一下继承的这几个接口有哪些通用方法

1.BaseMapper
//BaseMapper继承了四个mapper,从命名上可以看出是增删改查相关的mapper
@tk.mybatis.mapper.annotation.RegisterMapper
public interface BaseMapper<T> extends
        BaseSelectMapper<T>,
        BaseInsertMapper<T>,
        BaseUpdateMapper<T>,
        BaseDeleteMapper<T> {

}
//查询mapper
@RegisterMapper
public interface BaseSelectMapper<T> extends
		//根据实体类中的属性值查询出一个结果,如果有多个则会抛出异常
        SelectOneMapper<T>,
        //根据实体类的属性查询出一个集合
        SelectMapper<T>,
        //查询出所有的结果
        SelectAllMapper<T>,
        //根据实体中的属性查询总数
        SelectCountMapper<T>,
        //根据主键查询结果
        SelectByPrimaryKeyMapper<T>,
        ExistsWithPrimaryKeyMapper<T> {

}
//添加mapper
@RegisterMapper
public interface BaseInsertMapper<T> extends
		//保存一个实体,null的属性也会保存,不会使用数据库默认值
        InsertMapper<T>,
        //保存一个实体,null的属性不会保存,会使用数据库默认值
        InsertSelectiveMapper<T> {

}
//修改mapper
@RegisterMapper
public interface BaseUpdateMapper<T> extends
		//根据主键更新实体全部字段,null值会被更新
        UpdateByPrimaryKeyMapper<T>,
        //根据主键更新属性不为null的值
        UpdateByPrimaryKeySelectiveMapper<T> {

}
//删除mapper
@RegisterMapper
public interface BaseDeleteMapper<T> extends
		//根据实体属性作为条件进行删除
        DeleteMapper<T>,
        //根据主键字段进行删除
        DeleteByPrimaryKeyMapper<T> {
}
2.IdsMapper
@tk.mybatis.mapper.annotation.RegisterMapper
public interface IdsMapper<T> extends SelectByIdsMapper<T>, DeleteByIdsMapper<T> {

}
public interface SelectByIdsMapper<T> {

    /**
     * 根据主键字符串进行查询,类中只有存在一个带有@Id注解的字段
     *
     * @param ids 如 "1,2,3,4"
     * @return
     */
    @SelectProvider(type = IdsProvider.class, method = "dynamicSQL")
    List<T> selectByIds(String ids);

}
public interface DeleteByIdsMapper<T> {

    /**
     * 根据主键字符串进行删除,类中只有存在一个带有@Id注解的字段
     *
     * @param ids 如 "1,2,3,4"
     * @return
     */
    @DeleteProvider(type = IdsProvider.class, method = "dynamicSQL")
    int deleteByIds(String ids);

}
3.InsertListMapper
public interface InsertListMapper<T> {

    /**
     * 批量插入,支持批量插入的数据库可以使用,例如MySQL,H2等,另外该接口限制实体包含`id`属性并且必须为自增列
     *
     * @param recordList
     * @return
     */
    @Options(useGeneratedKeys = true)
    @InsertProvider(type = SpecialProvider.class, method = "dynamicSQL")
    int insertList(List<? extends T> recordList);

}
4.ConditionMapper
public interface ConditionMapper<T> extends
        SelectByConditionMapper<T>,
        SelectCountByConditionMapper<T>,
        DeleteByConditionMapper<T>,
        UpdateByConditionMapper<T>,
        UpdateByConditionSelectiveMapper<T> {

}

五、mapper.xml

1、mapper文件里使用if判断

//判断集合不等于空,不能写为list!=“”
<if test="list!=null and list.size>0”> 
    And ...
</if>
//判断字符串是否等于某个值,需要将值用双引号括起来,如果使用单引号需要使用tostring方法
<if test=‘name==“Tag"'> 
    And ...
</if>

2、#和$的区别
#是会默认给参数的左右加上双引号,避免sql注入攻击
$是直接把参数传入,在使用模糊查询的时候使用

<select id="queryByGoldDesc" resultType="string">
    select transaction_no from tb_gold_account where gold_desc like "%${goldDesc}"
  </select>
SpringBoot与MyBatis-Plus的整合与综合实例 MyBatis 是一款优秀的持久层框架,它支持定制化SQL、存储过程、以及高级映射。MyBatis3 提供的注解可以取代 XML。例如,使用注解 @Select 直接编写 SQL 完成数据查询。MyBatis-Plus 是一个对 MyBatis 进行增强的工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 阅读详情

相关推荐

springboot 3 下连接 mysql 数据库以及整合 mybatis-plus

springboot 3版本整合 mybatis 3.0.5版本控制台报错 Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required,NestedIOException 这个类在 Spring 6 版本中直接删除了。对的,直接删除了。而 MyBatis 老版本还没有同步更新,所以直接就报红了。而整合 mybatis 的 mybatis-plus 自然也会报红。

qq_42003636的博客 3915

通用mapper的使用——————2

//Mapper-&gt;BaseMapper&lt;T&gt;, ExampleMapper&lt;T&gt;, RowBoundsMapper&lt;T&gt;, Marker //MySqlMapper-&gt; InsertListMapper&lt;T&gt;, InsertUseGeneratedKeysMapper&lt;T&gt; //IdsMapper-&gt;Select...

New_CJ的博客 588

SpringBoot与MyBatis整合MySQL实战项目demo

SpringBoot作为Java领域主流的快速开发框架,凭借其自动配置和起步依赖的特性,极大地简化了企业级应用的开发流程。其核心原理基于条件化配置(等),在启动时自动装配常用组件,如数据源、事务管理器和Web MVC,开发者无需手动编写大量XML或配置类。选择SpringBoot作为整合MyBatis与MySQL的基础平台,不仅因其生态成熟、社区活跃,更因其对第三方框架提供了良好的扩展支持,通过starter机制可一键集成MyBatis,显著提升开发效率与项目可维护性。

weixin_32999557的博客 1153

从零搭建自己的SpringBoot后台框架(八)

Hello大家好,本章我们集成通用 Mapper功能 。有问题可以联系我mr_beany@163.com。另求各路大神指点,感谢一:什么是通用 Mapper通用 Mapper 是一个可以实现任意 MyBatis 通用方法的框架,项目提供了常规的增删改查操作以及Example 相关的单表操作。通用 Mapper 是为了解决 MyBatis 使用中 90% 的基本操作,使用它可以很方便的进行开发,可以...

weixin_34378045的博客 330

SpringBoot、MyBatis与MySQL整合实战指南

SpringBoot是一个开源的Java基础框架,旨在简化Spring应用的初始搭建以及开发过程。它使用了特定的方式来配置Spring,使得开发者能够快速启动和运行Spring应用程序。SpringBoot致力于减少配置文件的数量,简化项目构建配置,是现代微服务架构开发中的首选框架之一。ORM(Object Relational Mapping)框架是现代应用程序中不可或缺的一部分,它提供了一种将对象模型映射到关系数据库数据模型的方式。

weixin_42524864的博客 902

冗余位技术在SAR ADC中的动态误差恢复机制解析

本文深入解析了冗余位技术在SAR ADC中的动态误差恢复机制,详细介绍了其基本概念、动态误差产生原因及冗余位的容错空间设计、时序松弛策略和数字校正算法。通过实际电路设计案例和数学建模,展示了冗余位技术如何显著提升ADC的精度和能效比,同时探讨了未来发展方向。

weixin_28335283的博客 973

详细讲解MybatisPlus中的BaseMapper类中的CRUD功能(全)

Mybatisplus大部分CRUD都来源这个类,对此有意义剖析,方便之后的功能开发。

码农研究僧的博客 2615

完整指南:从基础到高级使用 Semantic Kernel

通过本文的学习,你已经掌握了从基础到高级的使用方法。安装并配置。使用简单的文本生成和自然语言处理任务。利用任务链和工具扩展构建复杂的工作流。通过记忆管理上下文,创建更智能的应用。扩展多模态处理能力,集成图像和音频分析。将应用部署到云端,并通过 Azure Functions 提供智能服务。无论是构建简单的对话应用,还是创建多模态智能服务,都提供了强大的工具和灵活的扩展机制。希望这篇文章能帮助你更好地理解并运用这个框架,构建出更加智能和高效的应用。

net core ,前端 ,python 全栈开发 2805

教务系统维护日志(3)---Mybatis Mapper学习

http://git.oschina.net/free/Mapper/blob/master/wiki/mapper3/5.Mappers.md/ Mapper3通用接口大全 Mapper3接口有两种形式,一种是提供了一个方法的接口。还有一种是不提供方法,但是继承了多个单方法的接口,一般是某类方法的集合。 例如SelectMapper<T>是一个单方法的接口,BaseSelect...

weixin_30768661的博客 674

光猫改桥接后,一根网线搞定IPTV和上网的保姆级教程(附VLAN配置避坑点)

本文详细介绍了光猫改桥接后如何通过单线复用技术实现IPTV和上网功能共存。从VLAN配置原理到具体操作步骤,包括光猫超级管理员权限获取、VLAN绑定设置及路由器IPTV功能配置,提供了全面的保姆级教程。特别针对常见问题如IPTV信号丢失、网速下降等给出了实用解决方案,帮助用户轻松避坑。

weixin_29927965的博客 1734

Dataset - DeepFashion 服装数据集

Dataset - DeepFashion 服装数据集 [Dataset - DeepFashion] [Project - DeepFashion] 1. 服装类别和属性预测集 [Category - Attribute 下载] [百度网盘] 289,222 张服装图片 clothes images; 50 个服装类别 clothing categories 1,000 ...

长风破浪会有时,直挂云帆济沧海 2万+

mybatisPlus常用注解&BaseMapper方法& IService方法& Wrapper常用条件总结

1.通过对mybatisPlus的学习,我们在常规的开发中,可以省略掉sevice层和Impl层,可以明显感受到,代码工作很少,基本都mybatisPlus提供 基本框架如下,springboot版本 2.UserMapper层是持久层,继承BaseMapper,在BaseMapper有常规的增删改查基本方法,当我们有需要其他方法时,也可以自己使用注解方法 @Repository//持久层 public interface UserMapper extends BaseMapper<User.

闽江程程的博客 5441

SAP 调用Ftp服务器

FTP(File transfer protocol)是一种标准的网络协议,可以用于在互联网上传递文件。SAP系统中可通过系列配置和提供的些标准函数,用于查看、更新、下载FTP服务器上的文件。提示:以下是本篇文章正文内容,下面案例可供参考。

qq_38304013的博客 1417

springboot整合mybatis和mysql

添加依赖架包 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</...

qq_43054241的博客 767

从零开始学习AI人工智能本体论:概念与实战

本文旨在为初学者提供一个全面而易于理解的人工智能本体论入门指南。我们将覆盖从基本概念到实际应用的全过程,帮助读者理解本体论在AI系统中的核心作用。核心概念与联系:介绍本体论的基本概念和原理核心算法与操作步骤:详细讲解本体构建和推理方法项目实战:通过实际案例展示本体论的应用实际应用场景:探讨本体论在不同领域的应用未来发展趋势:展望本体论在AI领域的前景本体论(Ontology): 在AI中,指对特定领域概念及其关系的明确形式化描述。

AI智能探索者的博客 864

功能安全实战系列12-英飞凌TC3xx锁步核及其自检开发

本文介绍了英飞凌Tricore系列芯片的锁步核(Lockstep Core)功能及其故障注入自检机制。锁步核通过主核和检查核同步执行指令,并比较输出结果来检测硬件故障。文章详细阐述了锁步核的工作原理、使能配置方法以及故障注入自检的实现过程。故障注入测试通过专用寄存器LCLTEST触发,系统会定期自动测试比较器节点,验证锁步核的故障检测能力。当检测到异常时,会触发SMU模块的警报机制。该技术为汽车电子系统提供了重要的功能安全保障。

initiallizer的博客 917

SpringBoot整合mybatis中出现java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼

今天搞了一下Spring Boot整合mybatis的测试,在application.properties中配置好了数据库相关的驱动账号密码等测试,出现了第一个异常 class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver i...

雨还在下的博客 910

基于深度学习的CT图像肺结节分割与检测系统[完整代码数据分享]

基于深度学习的CT图像肺结节分割与检测系统[完整代码数据分享]

267

SpringBoot整合Mybatis(详解,一看就会)

在resource创建好之后,我们在resource目录下创建application.yml,创建完之后写数据库配置文件,根据自己的 数据库和数据库账号和密码进行更改,改成自己的,以及端口,我这边端口是8081,根据自己可以修改端口,默认是 8080。注:本类中不要忘记写@service,以及依赖注入UserMapper,刚开始可以直接复制我的代码,后面自己去慢慢理解。至此我们的SpringBoot+Mybatis已经整合完毕了 我们运行项目,显示如下,我们已经运行完毕且没有错误。delete用于删除。

m0_67267524的博客 7918

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

SpringBoot整合Mybatis

SpringBoot整合Mybatis

junR_980218的博客 5万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

SpringBoot整合MyBatis详细教程~

目录1. 导入依赖2. 连接数据库3. 编写数据库配置信息4. 编写pojo实体类5. 编写mapper接口6. 编写mapper.xml7. 编写controller8. 测试 1. 导入依赖 首先新建一个springboot项目,勾选组件时勾选Spring Web、JDBC API、MySQL Driver 然后导入以下整合依赖 <!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-bo.

欢迎来到 Baret-H 的博客 4129

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

SpringBoot整合MyBatis与MySql8.0

一、前言 之前已经有一篇文章讨论过SpringBoot整合MyBatis,因而此篇不在重复累赘,本文主要是最新版的SpringBoot2.0与MyBatis、最新MySQL8.0整合过程中遇到的问题进行总结。同时,SpringBoot整合MyBatis中可以不用之前那篇那样繁琐的配置,可以使用application.properties文件进行整合。   二、application.yml ...

ryelqy的博客 4370

使用IDEA搭建SpringBoot框架整合Mybatis、MySQL、Thymeleaf实现用户查询、注册、登录(含源码)

目录 零、前言 一、 说明 1、环境版本 2、数据库准备 二、搭建整合环境 1、IDEA 快捷创建 SpringBoot 工程 2、修改配置文件 3、创建类和接口文件 4、创建 web 页面 三、测试 四、源码 零、前言 SpringBoot 框架整合相对于ssm框架整合SSM框架实现用户查询、注册、登录——IDEA整合Spring、Spring MVC、Mybat...

ONESTARの博客 7283

springboot整合mysql5.7_详解SpringBoot整合MyBatis详细教程

1. 导入依赖首先新建一个springboot项目,勾选组件时勾选Spring Web、JDBC API、MySQL Driver然后导入以下整合依赖org.mybatis.spring.bootmybatis-spring-boot-starter2.1.32. 连接数据库数据库代码:-- 创建数据库CREATE DATABASE springboot;-- 使用springboot数据库use...

weixin_39603397的博客 3933

SpringBoot结合Mybatis读取MySQL数据库

Select 查询id属性是与 Java 接口中方法相对应的标识符。属性定义了传递给 SQL 语句的参数类型。resultMap属性引用了结果映射。</select>Insert 插入</insert>Update 更新</update>Delete 删除</delete>

weixin_65702315的博客 2479

SpringBoot(五):SpringBoot整合MyBatis

怎么说了,写博客虽然是一件很费时间的事情,而且还是个菜鸟,但是如果写的东西能够帮助到别人,还是值得开心的。 回顾: 上篇写了JdbcTemplate,但是想到使用Mybatis,JPA的人估计不少,所以这篇写一下SpringBoot整合Mybatis,JPA的话以后有时间再弄,因为自己也没用过。 一、数据准备 其实还是上篇的,以防有人是直接看这篇的,就还是贴出来吧。

Saytime 7万+
上一篇: mysql数据库详解(一):sql语句
下一篇: mysql数据库详解(三):索引与sql优化
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值