Maison >Java >javaDidacticiel >Comment intégrer le framework Mybatis dans SpringBoot2

Comment intégrer le framework Mybatis dans SpringBoot2

WBOY
WBOYavant
2023-05-19 18:25:061335parcourir

1. Framework Mybatis

1. Introduction à mybatis

MyBatis est un excellent framework de couche de persistance qui prend en charge le SQL personnalisé, les procédures stockées et le mappage avancé. MyBatis évite presque tout le code JDBC, le réglage manuel des paramètres et la récupération des jeux de résultats. MyBatis peut utiliser du XML simple ou des annotations pour configurer et mapper des types natifs, des interfaces et des POJO Java (Plain Old Java Objects, plain old Java Objects) dans des enregistrements de la base de données.

2. Fonctionnalités de mybatis

1)sql语句与代码分离,存放于xml配置文件中,方便管理
2)用逻辑标签控制动态SQL的拼接,灵活方便
3)查询的结果集与java对象自动映射
4)编写原生态SQL,接近JDBC
5)简单的持久化框架,框架不臃肿简单易学

3. Scénarios applicables

MyBatis se concentre sur SQL lui-même et est une solution de couche DAO suffisamment flexible.
MyBatis sera un bon choix pour les projets qui ont des exigences de performances élevées ou qui ont des besoins changeants.

2. Intégration avec SpringBoot2

1. Schéma de structure du projet

Comment intégrer le framework Mybatis dans SpringBoot2

utilisant le pool de connexion Druid , le pool de connexions.

2. Dépendance du noyau

<!-- mybatis依赖 -->
<dependency>
    <groupid>org.mybatis.spring.boot</groupid>
    <artifactid>mybatis-spring-boot-starter</artifactid>
    <version>1.3.2</version>
</dependency>
<!-- mybatis的分页插件 -->
<dependency>
    <groupid>com.github.pagehelper</groupid>
    <artifactid>pagehelper</artifactid>
    <version>4.1.6</version>
</dependency>

3. Configuration du noyau

mybatis:
  # mybatis配置文件所在路径
  config-location: classpath:mybatis.cfg.xml
  type-aliases-package: com.boot.mybatis.entity
  # mapper映射文件
  mapper-locations: classpath:mapper/*.xml

4. Fichiers générés par rétro-ingénierie

#. 🎜🎜#Comment intégrer le framework Mybatis dans SpringBoot2

Je ne publierai pas le code ici.

5. Écrire l'interface de test de base

// 增加
int insert(ImgInfo record);
// 组合查询
List<img info alt="Comment intégrer le framework Mybatis dans SpringBoot2" > selectByExample(ImgInfoExample example);
// 修改
int updateByPrimaryKeySelective(ImgInfo record);
// 删除
int deleteByPrimaryKey(Integer imgId);</imginfo>

6. Écrire l'implémentation de l'interface

@Service
public class ImgInfoServiceImpl implements ImgInfoService {
    @Resource
    private ImgInfoMapper imgInfoMapper ;
    @Override
    public int insert(ImgInfo record) {
        return imgInfoMapper.insert(record);
    }
    @Override
    public List<img info alt="Comment intégrer le framework Mybatis dans SpringBoot2" > selectByExample(ImgInfoExample example) {
        return imgInfoMapper.selectByExample(example);
    }
    @Override
    public int updateByPrimaryKeySelective(ImgInfo record) {
        return imgInfoMapper.updateByPrimaryKeySelective(record);
    }
    @Override
    public int deleteByPrimaryKey(Integer imgId) {
        return imgInfoMapper.deleteByPrimaryKey(imgId);
    }
}</imginfo>

7. 🎜#8. Séquence de test

@RestController
public class ImgInfoController {
    @Resource
    private ImgInfoService imgInfoService ;
    // 增加
    @RequestMapping("/insert")
    public int insert(){
        ImgInfo record = new ImgInfo() ;
        record.setUploadUserId("A123");
        record.setImgTitle("博文图片");
        record.setSystemType(1) ;
        record.setImgType(2);
        record.setImgUrl("https://avatars0.githubusercontent.com/u/50793885?s=460&v=4");
        record.setLinkUrl("https://avatars0.githubusercontent.com/u/50793885?s=460&v=4");
        record.setShowState(1);
        record.setCreateDate(new Date());
        record.setUpdateDate(record.getCreateDate());
        record.setRemark("知了");
        record.setbEnable("1");
        return imgInfoService.insert(record) ;
    }
    // 组合查询
    @RequestMapping("/selectByExample")
    public List<img info alt="Comment intégrer le framework Mybatis dans SpringBoot2" > selectByExample(){
        ImgInfoExample example = new ImgInfoExample() ;
        example.createCriteria().andRemarkEqualTo("知了") ;
        return imgInfoService.selectByExample(example);
    }
    // 修改
    @RequestMapping("/updateByPrimaryKeySelective")
    public int updateByPrimaryKeySelective(){
        ImgInfo record = new ImgInfo() ;
        record.setImgId(11);
        record.setRemark("知了一笑");
        return imgInfoService.updateByPrimaryKeySelective(record);
    }
    // 删除
    @RequestMapping("/deleteByPrimaryKey")
    public int deleteByPrimaryKey() {
        Integer imgId = 11 ;
        return imgInfoService.deleteByPrimaryKey(imgId);
    }
}</imginfo>

3. Plug-in de pagination intégré

1. Fichier de configuration mybatis

http://localhost:8010/insert
http://localhost:8010/selectByExample
http://localhost:8010/updateByPrimaryKeySelective
http://localhost:8010/deleteByPrimaryKey

2. 🎜🎜 #
<?xml  version="1.0" encoding="UTF-8" ?>
nbsp;configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <plugins>
        <!--mybatis分页插件-->
        <plugin>
            <property></property>
        </plugin>
    </plugins>
</configuration>

3. Tester l'interface

@Override
public PageInfo<img info alt="Comment intégrer le framework Mybatis dans SpringBoot2" > queryPage(int page,int pageSize) {
    PageHelper.startPage(page,pageSize) ;
    ImgInfoExample example = new ImgInfoExample() ;
    // 查询条件
    example.createCriteria().andBEnableEqualTo("1").andShowStateEqualTo(1);
    // 排序条件
    example.setOrderByClause("create_date DESC,img_id ASC");
    List<img info alt="Comment intégrer le framework Mybatis dans SpringBoot2" > imgInfoList = imgInfoMapper.selectByExample(example) ;
    PageInfo<img info alt="Comment intégrer le framework Mybatis dans SpringBoot2" > pageInfo = new PageInfo(imgInfoList) ;
    return pageInfo ;
}</imginfo></imginfo></imginfo>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer