IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> SpringBoot-整合MyBatis -> 正文阅读

[Java知识库]SpringBoot-整合MyBatis

整合MyBatis

1. 创建项目

创建SpringBoot项目,添加MyBatis依赖、数据库驱动以及数据库连接池依赖,代码如下:

<!--mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.3</version>
        </dependency>
<!-- 数据库驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.22</version>
        </dependency>
<!--        druid-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.8</version>
        </dependency>

2. 创建数据库、表、实体类

2.1 创建数据库和表

CREATE DATABASE `chapter05` DEFAULT CHARACTER SET utf8;

USE `chapter05`

CREATE TABLE `book`(
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(128) DEFAULT NULL,
`author` VARCHAR(64) DEFAULT NULL,
PRIMARY KEY(`id`)			
) ENGINE=INNODB DEFAULT CHARSET=utf8;

INSERT INTO `book`(`id`,`name`,`author`) VALUES (1,'刻在你心底的名字','DiFer'),(2,'活着','余华');

2.2 数据库配置

在application.yml 中配置数据库基本连接信息:

spring:
  datasource:
    username: root
    password: root
    url: jdbc:mysql://localhost:3306/chapter05?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    #druid 数据源专有配置
    druid:
      filters: stat,wall
      aop-patterns: com.chen.*
      stat-view-servlet:
        enabled: true
        login-username: admin
        login-password: 123456
        reset-enable: false

      web-stat-filter:
        enabled: true
        url-pattern: /*
        exclusions: '*.js,*.gif,*jpg,*.png,*.ico,/druid/*'

      filter:
        stat:
          slow-sql-millis: 1000
          log-slow-sql: true
          enabled: true
        wall:
          enabled: true

注意:msql8.0版本以上要有时区的配置serverTimezone=GMT%2B8

在application.properties配置MyBatis

#整合mybatis
mybatis.type-aliases-package=com.chen.pojo
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml

第一行是起别名。
第二行扫描xml文件。

2.3 创建实体类

创建Book实体,代码如下:

public class Book {
    private Integer id;
    private String name;
    private String author;

    @Override
    public String toString() {
        return "Book{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", author='" + author + '\'' +
                '}';
    }

    public Book() {
    }

    public Book(Integer id, String name, String author) {
        this.id = id;
        this.name = name;
        this.author = author;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }
}

3. 创建数据库访问层

创建BookMapper,代码如下:

@Mapper
public interface BookMapper {
    int addBook(Book book);
    int deleteBookById(Integer id);
    int updateBookById(Book book);
    Book getBookById(Integer id);
    List<Book> getAllBooks();
}

代码解释:
有两种方式指明该类是一个Mapper:第一种,在BookMapper上添加@Mapper注解,表明该接口是一个MyBatis中的Mapper,这种方式需要在每一个Mapper上都添加注解;还有一种简单的方式在配置类上添加@MapperScan(“org.sang.mapper”)注解,表示扫描org.sang.mapper包下所有接口作为Mapper。

4. 创建BookMapper.xml

在resources下在创建:
在这里插入图片描述
代码如下:

<?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.example.mapper.BookMapper">
    
    <insert id="addBook" parameterType="Book">
        insert into book(name,author) value (#{name},#{author})
    </insert>
    
    <delete id="deleteBookById" parameterType="int">
        delete from book where id=#{id}
    </delete>
    
    <update id="updateBookById" parameterType="Book">
        update book set name=#{name},author=#{author} where id=#{id}
    </update>
    
    <select id="getBookById"  resultType="Book">
        select * from book where id=#{id}
    </select>
    
    <select id="getAllBooks" resultType="Book">
        select * from book
    </select>
   
</mapper>

5.创建Service

@Service
public class BookService {
    @Autowired
    BookMapper bookMapper;

    public int addBook(Book book){
        return bookMapper.addBook(book);
    }

    public int updateBook(Book book){
        return bookMapper.updateBookById(book);
    }

    public int deleteBookById (Integer id) {
        return bookMapper.deleteBookById(id);
    }

    public Book getBookById(Integer id){
        return bookMapper.getBookById(id);
    }

    public List<Book> getAllBooks(){
        return bookMapper.getAllBooks();
    }
}

6. 创建Controller

@RestController
public class BookController {

    @Autowired
    BookService bookService;

    @GetMapping("/bookOps")
    public void bookOps(){
        Book b1 = new Book();
        b1.setName("Java");
        b1.setAuthor("Json");
        int i = bookService.addBook(b1);
        System.out.println("addBook>>>"+i);

        Book b2 = new Book();
        b2.setId(1);
        b2.setName("许三观卖血记");
        b2.setAuthor("余华");
        int updateBook = bookService.updateBook(b2);
        System.out.println("update>>>"+updateBook);

        Book b3 = bookService.getBookById(1);
        System.out.println("getBookById>>>"+b3);

        List<Book> allBooks = bookService.getAllBooks();
        System.out.println("getAllBooks>>>"+allBooks);
    }
}

接下来在浏览器中输入“http://localhost: 8080/bookOps ”,即可看到数据库中数据的变化,控制台 也打印出相应的日志。
在这里插入图片描述
数据库的数据更新变化
在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-08-19 18:50:24  更:2022-08-19 18:50:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/22 11:22:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码