范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

SpringBoot整合MyBatisPlus实操

  1.SpringBoot整合MyBatis1.1整合案例
  需求:整合SpringBoot和Mybatis,向数据库中查询数据。
  项目结构:
  1.1.1创建数据库和表-- 创建数据库DROP DATABASE IF EXISTS springboot_mybatis;CREATE DATABASE springboot_mybatis;USE springboot_mybatis; -- 创建表CREATE TABLE monster(`id` INT NOT NULL  AUTO_INCREMENT,`age` INT NOT NULL,`birthday` DATE DEFAULT NULL,`email` VARCHAR(255) DEFAULT NULL,`gender` CHAR(1) DEFAULT NULL,`name` VARCHAR(255) DEFAULT NULL,`salary` DOUBLE NOT NULL,PRIMARY KEY(`id`) )CHARSET=utf8;
  插入测试数据:
  1.1.2引入依赖
  在pom.xml中引入mybatis及相关的依赖      spring-boot-starter-parent    org.springframework.boot    2.5.3                 org.springframework.boot        spring-boot-starter-web                    org.mybatis.spring.boot        mybatis-spring-boot-starter        2.2.2                    mysql        mysql-connector-java                    org.springframework.boot        spring-boot-configuration-processor                    org.projectlombok        lombok                    org.springframework.boot        spring-boot-starter-test                     com.alibaba        druid        1.1.17    1.1.3配置数据源
  在resource/application.yml中配置数据源,并完成SpringBoot项目启动测试  spring:  datasource: #配置数据源    url: jdbc:mysql://localhost:3306/springboot_mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8    username: root    password: 123456    driver-class-name: com.mysql.cj.jdbc.Driverserver:  port: 9090
  创建配置类,设置Druid数据源:
  这里如果引入的依赖是druid-starter,可以直接在yml文件中配置 package com.li.springboot.mybatis.config; import com.alibaba.druid.pool.DruidDataSource;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration; import javax.sql.DataSource; /** * @author 李 * @version 1.0 */@Configurationpublic class DruidDataSourceConfig {    @ConfigurationProperties("spring.datasource")    @Bean    public DataSource dataSource() {        DruidDataSource druidDataSource = new DruidDataSource();        return druidDataSource;    }}1.1.4指定mapper.xml路径
  在application.yml文件中配置mybatis,指定要扫描的mapper.xml文件的路径
  在ssm整合中,这一步也是在applicationContext.xml容器文件中指定 mybatis:  mapper-locations: classpath:mapper/*.xml #指定要扫描的mapper.xml路径1.1.5代码实现
  (1)创建JavaBean--Monster.java,用于表映射  package com.li.springboot.mybatis.bean; import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor; import java.util.Date; /** * @author 李 * @version 1.0 */@Data@NoArgsConstructor@AllArgsConstructorpublic class Monster {    private Integer id;    private Integer age;    private Date birthday;    private String email;    private String name;    private String gender;    private Double salary;}
  (2)创建mapper接口,用于声明方法  package com.li.springboot.mybatis.mapper; import com.li.springboot.mybatis.bean.Monster;import org.apache.ibatis.annotations.Mapper; /** * @author 李 * @version 1.0 * 使用注解@mapper,就可以将mapper接口对象注入容器 */@Mapper//除了使用注解,也可以直接指定要扫描的包public interface MonsterMapper {    //根据id查询数据记录    public Monster getMonsterById(Integer id);}
  (3)在resource/mapper目录下创建接口对应的mapper.xml文件,实现声明的方法  <?xml version="1.0" encoding="UTF-8" ?>        
  (4)进行测试:
  如果要写测试类,一定要写主程序 package com.li.springboot.mybatis; import com.li.springboot.mybatis.bean.Monster;import com.li.springboot.mybatis.mapper.MonsterMapper;import org.junit.jupiter.api.Test;import org.springframework.boot.test.context.SpringBootTest; import javax.annotation.Resource; /** * @author 李 * @version 1.0 */@SpringBootTestpublic class ApplicationTest {    @Resource    private MonsterMapper monsterMapper;//注入的实际上是它的代理类     //测试MonsterMapper接口是否可用    @Test    public void getMonsterMapper() {        Monster monster = monsterMapper.getMonsterById(1);        System.out.println("monster=" + monster);    }}
  测试结果:成功从数据库中获取信息。
  接下来的Service、Controller层和ssm没有多大区别,这里不再赘述 1.1.6补充-对mybatis的配置SpringBoot对mybatis的配置有两种方式:
  (1)使用传统方式配置,即使用mybatis-config.xml。不过要先在application.yml文件中指定mybatis配置文件的路径。  mybatis:  config-location:  #指定mybatis-config.xml文件的路径
  (2)直接使用application.yml文件进行配置,例如:  mybatis:  type-aliases-package: com.li.springboot.mybatis.bean #指定别名  configuration:    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #指定标准的日志输出两种方式的选择:如果配置比较简单,可以在yml中直接配置如果配置内容较多,可以单独地做一个配置文件  1.2注意事项和使用细节
  SpringBoot中日期默认是格林尼治标准时间,和中国标准时相差8小时,可以通过注解@JsonFormat解决此问题:
  其中pattern表示日期格式,timezone表示时区,GMT是格林尼治时间  2.SpringBoot整合MyBatis-Plus2.1MyBatis-Plus基本介绍
  MyBatisPlus官方文档 MyBatis-Plus,简称MP,是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。  强大的CRUD操作:  内置了通用Mapper、通用Service  ,通过少量配置即可实现单表大部分CRUD操作,更有强大的条件构造器,满足各类需求。  2.2整合案例
  需求:整合SpringBoot和MyBatis-Plus,向数据库中查询数据。  2.2.1创建数据库和表
  略,表结构同上。
  2.2.2引入依赖
  pom.xml文件中引入mybatis-plus starter和其他依赖。      spring-boot-starter-parent    org.springframework.boot    2.5.3                 org.springframework.boot        spring-boot-starter-web                     com.baomidou        mybatis-plus-boot-starter        3.4.3                     mysql        mysql-connector-java                     org.springframework.boot        spring-boot-configuration-processor                     org.projectlombok        lombok                     org.springframework.boot        spring-boot-starter-test                     com.alibaba        druid        1.1.17    2.2.3配置数据源
  (1)在resource/application.yml中配置数据源  server:  port: 9090spring:  datasource:    driver-class-name: com.mysql.cj.jdbc.Driver    url: jdbc:mysql://localhost:3306/springboot_mybatisplus?useSSL=true&useUnicode=true&characterEncoding=UTF-8    username: root    password: 123456
  (2)创建配置类,设置Druid数据源:这一步和mybatis整合相同,见上1.1.3操作  2.2.4代码实现
  (1)创建JavaBean--Monster.java,用于表映射(同1.1.4的操作,略)
  (2)创建mapper接口,用于声明方法
  相比于mybatis需要自己声明方法, MP提供了一个通用的BaseMapper ,有很多通用的方法,通过继承,我们就可以直接使用,简化开发 package com.li.springboot.mybatisplus.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;import com.li.springboot.mybatisplus.bean.Monster;import org.apache.ibatis.annotations.Mapper; /** * @author 李 * @version 1.0 * BaseMapper是MyBatisPlus内置的通用Mapper,提供了很多的方法 * 如果它提供的方法不能满足业务需求,我们可以在这里开发新的方法 */@Mapperpublic interface MonsterMapper extends BaseMapper {     }
  如果在这一步没有自定义的接口方法,就不需要使用Mapper.xml文件实现声明
  (3)开发Service
  MP也提供了一个通用的Service接口 ,里面也提供了很多方法 package com.li.springboot.mybatisplus.service; import com.baomidou.mybatisplus.extension.service.IService;import com.li.springboot.mybatisplus.bean.Monster; /** * @author 李 * @version 1.0 * 1.在mybatis中,是在MonsterService声明方法,然后在其实现类实现 * 2.而在MyBatis-Plus中,我们可以通过继承父接口:IService,从而使用里面的很多方法 * 3.如果它提供的方法不能满足业务需求,再开发新的方法 */@Servicepublic interface MonsterService extends IService {}
  注意:如果在业务Service接口声明了自定义方法,通常会创建一个实现类实现接口方法,问题是:由于业务Service接口继承了IService接口,那么业务Service的实现类要同时实现两个接口的方法才行,非常麻烦。
  解决方案是:业务实现类通过继承ServiceImpl类解决问题。ServiceImpl类是MyBatis-Plus提供的一个类,它已经实现了IService的方法。这样业务实现类就只需要实现业务Service自定义的方法。
  业务实现类MonsterServiceImpl:  package com.li.springboot.mybatisplus.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;import com.li.springboot.mybatisplus.bean.Monster;import com.li.springboot.mybatisplus.mapper.MonsterMapper;import com.li.springboot.mybatisplus.service.MonsterService; /** * @author 李 * @version 1.0 */public class MonsterServiceImpl        extends ServiceImpl        implements MonsterService {    //通过继承ServiceImpl,这个实现类中就只用实现业务Service自定义的方法}
  controller层的实现和mybatis的大同小异,这里就不写了 2.2.5补充-对MP的配置MyBatis-Plus的配置和MyBatis配置几乎没有区别,在SpringBoot中,同样可以通过如下方式进行配置:
  (1)使用传统的配置文件配置,不过要先在application.yml文件中指定配置文件的路径:  mybatis-plus:  config-location: xxx #指定mp配置文件的路径
  (2)直接使用application.yml文件进行配置,例如:  mybatis-plus:  configuration: # 进行mybatis-plus配置,配置项和mybatis一样    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl@MapperScan注解(修饰于主程序)可以替代@Mapper(修饰于mapper接口),basePackages属性可以接收多个值  2.3注意事项和使用细节
  MyBatis-Plus的注解
  (1)@TableName
  描述:表名注解,标识实体类对应的表。如果实体类的类名和表名一致,则该注解可以省略,否则需要通过@TableName指定表名

NBA现役谁的肌肉最强悍?锡安手臂堪比大腿霍华德有鬼背NBA现役肌肉强悍的球星都不少,虽然都在投篮,大家对抗也没以前强,不过肌肉强大的球星也不少。NBA对抗即使不如以前,但一样是全球最顶级篮球联赛,强度真不是一般球员能承受的,所以想要热血传奇传奇里的PK第一人传奇这款游戏对于现在的有些人来说可能已经不是一款游戏那么简单,它更是一种回忆,它代表了我们的青春和热血,而在传奇里也有着很多有名的玩家,今天我要介绍的就是传奇里的一个有名的人。这个招募热血开团赢ID。3使用权抢游戏点卡成功组团,即可获得价值2333元的点卡和3个月的ID。3使用权。12月31日,上汽大众ID。杯王者荣耀争霸赛正式开赛。本次ID。杯是ID。3与王者荣耀合作,面向所有电竞爱好者进行公热血传奇属性奇葩的战士手镯,都把我看醉了热血传奇中的战士玩家群体最多,相应的战士装备需求量也比较大。虽说有些战士装备属性很高,但不一定是适合战士玩家使用的。攻击01的战神盔甲今天小编就跟大家盘点一些属性奇葩的战士手镯,绝热血传奇任务地图怪多人也多,战士如何实现无损单挑?大家好,我是院长,一位每天跟大家分享传奇的敬业小编。今天给大家介绍战士如何快速刷怪升级的小技巧!1任务地图任务地图怪多人也多,战士在跟其他职业抢怪通常都抢不过人家,这时候玩家就要学今日科技话题地理信息科研平台碳纳米管泥河湾盆地生存环境海洋缺氧区3D图谱鱼龙化石新型芯片1打破模型孤岛,地理信息科研应用有了共享平台OpenGMS平台网站截图近日,南京师范大学陈旻教授及其团队搭建的OpenGMS平台获得中国地理信息产业协会地理信息科技进步奖特等奖,该快手鸡蛋饼,我家一周最少吃3次,10秒烙一张,出锅软得不像话在生活中,鸡蛋饼是一款非常常见的早餐选择。其特点是非常的简单快手,调好蛋糊煎一煎就可以吃了。如果再搭配一点调味料和食材,那就是一份非常丰盛的早餐了。尤其那嫩滑爽口的滋味,浓郁的蛋香日本时尚博主绝了,1米58穿搭出2米的气场,时尚霸气,美得不像话哈喽,大家好啊,我是维维安。有很多小伙伴跟小编说希望可以分享一些个子小巧的穿搭指南,比如娱乐圈里的小个子亚洲天后蔡依林,只有1米5几的身高却穿搭出2米的强大气场,穿搭技巧很值得我们粉色减龄穿搭绝了,学会4个时髦配色,从16岁到66岁美得不像话哈喽,大家好啊,我是维维安。在艺术上,粉色意味着青春和浪漫,给人感觉充满少女系的甜美感。很多朋友透露自己很喜欢粉色,衣橱里的粉色放了一年又一年。天生自带甜美温柔滤镜的粉色,不管是衣同一种树上结出的果实,一个叫龙眼,一个叫桂圆,二者咋区分?龙眼原产于中国南部地区,广西福建台湾是主产区。龙眼是一种汁多肉甜的特别可口的水果,果实接近球形,通常黄褐色或有时灰黄色,表皮稍粗糙,像砂纸,果肉乳白色,具有光泽和弹性。种子茶褐色,我那梦中的老房子我一直以来都对江南古镇有种无可名状的特殊情结。窃以为,有古镇情结的人,大概骨子里都有那么一丝丝浪漫因子,总想将那些无以排遣的缱绻之念,在岁月腐朽的雕梁画栋间默默安放。每到旅游季节,
基金这应该是一个利好消息会不会有人就这样想,今天跑了,等明天中阴时再进,结果明天是小阳小阴呢?这是一位铁粉朋友的留言,谢谢这位铁粉朋友。我觉得这样的想法是错误的,不管明天是涨还是跌,即使今天卖出以后,明天韩媒传来消息,三星开发第二代3nm,台积电3nm被高估了?高端芯片市场的竞争来到了3nm,台积电和三星展开了角逐,其中良率问题是竞争的关键,决定了能拿到多少客户订单。有韩媒传来消息,表示三星已经在开发第二代3nm了,而台积电的3nm并没有柏林世界杯湖北名将王宗源实现双人大满贯冲刺全满贯目标巴黎在国际跳水界,王宗源以分外抢眼的表现已步入名将之列。在10月举行的跳水世界杯上,首次参赛的王宗源完成男子单双人三米板冠军的包揽。至此,他已实现东京奥运会布达佩斯世锦赛柏林世界杯三大遇见甘南附记第一次夭折的甘南之行自2012年起,我每年都要拿出几个月的时间去领略一下祖国大地山水风光,或自驾游,或背包自由行,没有参过团。因为我不喜欢那种上车睡觉,下车尿尿,到此一游,景点拍照赶考式的有时间约束的阿坝州松潘县民宿产业走出乡村振兴新路子来源原创稿怿宿古道牧风精品民宿。松潘县文化体育和旅游局供图光和云朵民宿。松潘县文化体育和旅游局供图光和云朵民宿。松潘县文化体育和旅游局供图冬日,走进阿坝州松潘县,雪山之下,连片森林伊万娜诺尔现身广场,穿红色方块连体装搭黑直筒高跟鞋大方有型近日,美国纽约,克罗地亚足球宝贝伊万娜诺尔(IvanaKnoll)在当地广场进行拍摄活动。当天,她身穿克罗地亚标志球衣款式的服装亮相,红色的方块连体装,搭配黑色的直筒高跟鞋,看起来一个人最好的修行,是从选择开始的!生活在后疫情时代的人们,都面临着前所未有的挑战与考验。有的人一出生就在罗马,可是有更多人一出生就遇到了小奥的猛烈撞击。人的一生就是在一次次的危机中前行,在一次次的选择中修行。每个人这才是最得体的过年打扮裤不遮鞋面裙不上膝盖,美得高级古希腊哲学家阿柏拉图曾经说过当美的灵魂与美的外表和谐地融为一体,人就会看到世界上最完善的美。简短的一句话告诉我们,仅仅拥有好看的外表是不够的,还要拥有美好的心灵,并且要通过得体的着把气质穿出来真的没那么难,瞧瞧她们这样穿多洋气,高级时髦过年倒计时了,女生们都纷纷跑理发店做发型去了,又烫又染,就希望回家过年的时候变得更加漂亮一些,想要变得漂亮好看,光做发型可不行,重点还是看衣服穿搭,搭配的好了就变得漂亮大气。每一个胖东来为什么开不进北上广不知道从什么时候起,我的河南籍朋友们每次回老家,都像是去卡塔尔度假。短短两三天的行程,四五页的购物小票,满满几后备箱的战利品,足够他们在朋友圈和小红书上晒足180天。仔细一打听才知查干湖鱼香四海渔家姐妹新年卖鱼忙曲丽敏(居中)带游客们游玩。受访者供图(新春走基层)查干湖鱼香四海渔家姐妹新年卖鱼忙中新网松原1月8日电(高龙安)晚上的查干湖渔场灯火通明,曲丽杰和伙计们要在这里选出二百条二十来斤