日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

SpringBoot整合Mybatis詳解

作者:鑄鍵為犁 更新時間: 2023-07-25 編程語言

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔

文章目錄

  • 前言
  • 一、創(chuàng)建項目,導入依賴,完善項目結構
  • 二、編碼
    • 1.yml配置
    • 2.編寫實體類
    • 3.編寫mapper.xml和接口
    • 4.編寫業(yè)務層
    • 5.編寫控制層
    • 6.啟動類加上包掃描注解
  • 三.測試
  • 總結


前言

SpringBoot支持對其它框架的快速擴展,本篇記錄怎么使用SpringBoot整合Mybatis框架


一、創(chuàng)建項目,導入依賴,完善項目結構

使用IDEA創(chuàng)建SpringBoot項目上篇已經講過,不再贅述,大家可以自行觀看http://t.csdn.cn/1N423
直接從導入依賴開始

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.9</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

項目結構如下
在這里插入圖片描述

二、編碼

1.yml配置

#配置連接數(shù)據庫
spring:
  datasource:
    username: 用戶民
    password: 密碼
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/book?serverTimezone=Asia/Shanghai&characterEncoding=utf8
    type: com.alibaba.druid.pool.DruidDataSource

#配置mybatis
mybatis:
  # 指定別名設置的包為所有pojo
  type-aliases-package: com.lzl.pojo
  configuration:
    #控制臺輸出
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  #mapper.xml文件位置
  mapper-locations: classpath:mapper/*.xml

2.編寫實體類

package com.lzl.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * --效率,是成功的核心關鍵--
 *
 * @Author lzl
 * @Date 2023/3/7 19:10
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Book {
    private Integer id;
    private String bookName;
    private String author;
    private Double price;
    private Integer typeId;
    private String description;
    private String path;
}

3.編寫mapper.xml和接口

持久層接口

package com.lzl.mapper;

import com.lzl.pojo.Book;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * --效率,是成功的核心關鍵--
 *
 * @Author lzl
 * @Date 2023/3/7 19:18
 */
@Repository
public interface BookMapper {
    List<Book> getAll();
}

映射文件

<?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.lzl.mapper.BookMapper">
    <resultMap id="bookMap" type="book">
        <id column="id" property="id"/>
        <result column="book_name" property="bookName"/>
        <result column="author" property="author"/>
        <result column="price" property="price"/>
        <result column="type_id" property="typeId"/>
        <result column="description" property="description"/>
        <result column="path" property="path"/>
    </resultMap>
    <sql id="selectSql">
        select id,book_name,author,price,description,path from book
    </sql>
    <select id="getAll" resultMap="bookMap">
        <include refid="selectSql"/>
    </select>


</mapper>

4.編寫業(yè)務層

接口:

package com.lzl.service;

import com.lzl.pojo.Book;


import java.util.Map;

/**
 * --效率,是成功的核心關鍵--
 *
 * @Author lzl
 * @Date 2023/3/7 19:19
 */

public interface BookService {
    Map<String,Object> findAll();
}

實現(xiàn)類:

package com.lzl.service.impl;

import com.lzl.mapper.BookMapper;
import com.lzl.pojo.Book;
import com.lzl.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * --效率,是成功的核心關鍵--
 *
 * @Author lzl
 * @Date 2023/3/7 19:20
 */
@Service
public class BookServiceImpl implements BookService {
    @Autowired
    private BookMapper mapper;


    @Override
    public Map<String, Object> findAll() {
        Map<String, Object> map = new HashMap<>();
        List<Book> list = mapper.getAll();
        if (list.size() != 0){
            map.put("data",list);
            map.put("code",200);
        }else{
            map.put("msg","沒有數(shù)據!");
            map.put("code",200);
        }
        return map;
    }
}

5.編寫控制層

package com.lzl.controller;


import com.lzl.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Map;

/**
 * --效率,是成功的核心關鍵--
 *
 * @Author lzl
 * @Date 2023/3/7 19:20
 */
@RestController
@RequestMapping("/book")
public class BookController {
    @Autowired
    private BookService service;

    @RequestMapping("/getAll")
    public Map<String,Object> getAll(){
        return service.findAll();
    }
}

6.啟動類加上包掃描注解

在這里插入圖片描述

三.測試

啟動項目,瀏覽器訪問http://localhost:8080/book/getAll如下:
在這里插入圖片描述

成功!


總結

本篇是對mybatis的整合,完成

原文鏈接:https://blog.csdn.net/l_zl2021/article/details/129371063

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新