spring boot整合mybatis,简述使用spring整合mybatis的基本步骤

  spring boot整合mybatis,简述使用spring整合mybatis的基本步骤

  

目录

1 依赖配置注射毒品使用2.1跳靴配置整合mybatis:2.2跳趾注解整合mybatis:2.3在配置类上增加@MapperScan注解,扫描某个包下的全部制图人文件:总结

 

  

1 依赖配置

父groupIdorg.springframework.boot/groupId artifact id spring-boot-starter-parent/artifact id版本2。5 .4/版本/父依赖项依赖项groupIdorg.springframework.boot/groupId artifact id spring-boot-starter-web/artifact id/依赖项groupIdorg.projectlombok/groupId artifact id lombok/artifact id版本1。18 .22/version/dependency groupIdorg.mybatis.spring.boot/groupId artifactId mybatis-spring-boot-starter/artifactId版本1。3 .2/版本/依赖关系!春天连接驱动时,如com.mysql.cj.jdbc.Driver使用-依赖关系groupId MySQL/groupId artifact id MySQL-connector-Java/artifact id作用域运行时/作用域/依赖性依赖关系groupIdorg.springframework.boot/groupId artifact id spring-boot-configuration-processor/artifact id选项true/optional/dependency/dependencies找到我的巴蒂斯-弹簧靴-起动器配置的依赖,即自动配置包,跳靴的自动配置,会找到元信息下的春天。工厂,找到启用自动配置对应的类:

 

  可知自动配置类为MybatisAutoConfiguration:

  查看配置绑定类MybatisProperties,可知yml中前缀配置为mybatis:

  可知,mybatis前缀的阳明海运股份有限公司配置,可以配置属性,比如:configLocation、mapperLocations、typeAliasesPackage等等。

  框架下,又具有@NestedConfigurationProperty成员变量,故而前缀是mybatis.configuration,

  其中具有如下属性:

  

 

  其中有非常熟悉的属性:mapUnderscoreToCamelCase,也就是数据库字段下划线转驼峰的配置。

  然后,数据源有如下配置:

  

 

  数据源的配置绑定是DataSourceProperties

  

 

  可知,数据源在yml中以spring.datasource为前缀,可配置连接数据源的driverClassNameurlusernamepassword等参数。

  

 

  

 

  

2 使用

 

  

2.1 SpringBoot配置整合mybatis:

建表:

 

  

 

  实体类(mybatis本质上将数据库表的数据和实体类对应,就是依靠的getter和setter,所以@Data是必须有的):

  

package com.xiaoxu.boot.dto;import lombok.Data;import java.util.Date;/** * @author xiaoxu * @date 2022-03-08 * spring_boot:com.xiaoxu.boot.dto.PeopleDTO */@Datapublic class PeopleDTO { // 人的id编号 long id; // 人的名字 String myName; // 年龄 int myAge; // 出生日期 Date birthday;}

新建Mapper接口:

 

  

 

  注意mapper接口必须要有@Mapper注解:

  

package com.xiaoxu.boot.mapper;import com.xiaoxu.boot.dto.PeopleDTO;import org.apache.ibatis.annotations.Mapper;import java.util.List;@Mapperpublic interface PeopleMapper { List<PeopleDTO> queryPeopleByAge(int age);}

在resources目录下准备mybatis的配置文件,以及Mapper文件:

 

  

 

  mybatis-confi.xml:

  

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration></configuration>

 

  

<?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"><mapper namespace="com.xiaoxu.boot.mapper.PeopleMapper"> <select id="queryPeopleByAge" resultType="com.xiaoxu.boot.dto.PeopleDTO"> select * from my_people where my_age = #{age} </select></mapper>

在application.yml中配置如下:

 

  

spring: datasource: username: root password: ****** url: jdbc:mysql://localhost:3306/xiaoxu?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC driver-class-name: com.mysql.cj.jdbc.Driver#mybatis的相关配置mybatis: #mapper配置文件 mapper-locations: classpath:mapper/*.xml# #mybatis配置文件# config-location: classpath:mybatis-config.xml# config-location和configuration不能同时存在 #开启驼峰命名 configuration: map-underscore-to-camel-case: true

插入测试数据:

 

  

 

  service层实现:

  

package com.xiaoxu.service;import com.xiaoxu.boot.dto.PeopleDTO;import com.xiaoxu.boot.mapper.PeopleMapper;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;/** * @author xiaoxu * @date 2022-03-08 * spring_boot:com.xiaoxu.service.PeopleService */@Servicepublic class PeopleService { @Autowired PeopleMapper peopleMapper; public List<PeopleDTO> getPeoples(int Age){ return peopleMapper.queryPeopleByAge(Age); }}

controller层实现:

 

  

package com.xiaoxu.boot.controller;import com.xiaoxu.boot.dto.PeopleDTO;import com.xiaoxu.service.PeopleService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import java.util.List;/** * @author xiaoxu * @date 2022-03-08 * spring_boot:com.xiaoxu.boot.controller.PeopleController */@RestControllerpublic class PeopleController { @Autowired PeopleService peopleService; @GetMapping("/people") public List<PeopleDTO> queryPeople(@RequestParam(value = "ag") int age){ return peopleService.getPeoples(age); }}

执行结果无误:

 

  

 

  

 

  

2.2 SpringBoot注解整合mybatis:

修改Mapper接口文件:

 

  

package com.xiaoxu.boot.mapper;import com.xiaoxu.boot.dto.PeopleDTO;import org.apache.ibatis.annotations.Mapper;import org.apache.ibatis.annotations.Select;import java.util.List;@Mapperpublic interface PeopleMapper { List<PeopleDTO> queryPeopleByAge(int age); @Select("select * from my_people") List<PeopleDTO> queryAllPeople();}

修改服务层:

 

  

package com.xiaoxu.service;import com.xiaoxu.boot.dto.PeopleDTO;import com.xiaoxu.boot.mapper.PeopleMapper;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;/** * @author xiaoxu * @date 2022-03-08 * spring_boot:com.xiaoxu.service.PeopleService */@Servicepublic class PeopleService { @Autowired PeopleMapper peopleMapper; public List<PeopleDTO> getPeoples(int Age){ return peopleMapper.queryPeopleByAge(Age); } public List<PeopleDTO> getAllPeople(){ return peopleMapper.queryAllPeople(); }}

增加controller:

 

  

package com.xiaoxu.boot.controller;import com.xiaoxu.boot.dto.PeopleDTO;import com.xiaoxu.service.PeopleService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import java.util.List;/** * @author xiaoxu * @date 2022-03-08 * spring_boot:com.xiaoxu.boot.controller.PeopleController */@RestControllerpublic class PeopleController { @Autowired PeopleService peopleService; @GetMapping("/people") public List<PeopleDTO> queryPeople(@RequestParam(value = "ag") int age){ return peopleService.getPeoples(age); } @GetMapping("/allPeople") public List<PeopleDTO> queryAllPeople(){ return peopleService.getAllPeople(); }}

结果返回无误:

 

  

 

  

 

  

2.3 在配置类上增加@MapperScan注解,扫描某个包下的全部Mapper文件:

如果每个Mapper接口文件上增加@Mapper比较麻烦,那么可以在配置类,如主程序类上,增加@MapperScan注解,以及扫描路径,效果和@Mapper一致:

 

  

 

  主程序类增加@MapperScan注解:

  

 

  重新执行效果一致:

  

 

  

 

  

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注盛行IT的更多内容!

 

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: