springboot整合mybatis实现增删改查

2023-05-16

前言
在学习Springboot过程中,整合mybatis框架实现表数据的增删改查,话不多说,开始贴代码!

Spring Boot提供了一个名为spring-boot-starter-parent的工程,里面已经对各种常用依赖(并非全部)的版本进行了管理,我们的项目需要以这个项目为父工程,这样我们就不用操心依赖的版本问题了,需要什么依赖,直接引入坐标即可!

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.5.RELEASE</version>
</parent>

springboot完整pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
 
    <groupId>org.example</groupId>
    <artifactId>springboot_demo</artifactId>
    <version>1.0-SNAPSHOT</version>
 
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.5.RELEASE</version>
    </parent>
 
    <properties>
        <java.version>1.8</java.version>
    </properties>
    
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
</project>

springboot整合mybatis

  1. SpringBoot官方并没有提供Mybatis的启动器,不过Mybatis官网自己实现了。在项目的 pom.xml 文件中加入mybatis依赖:
<!-- 通用mapper -->
<dependency>
    <groupId>tk.mybatis</groupId>
    <artifactId>mapper-spring-boot-starter</artifactId>
    <version>2.1.5</version>
</dependency>
  1. 在 pom.xml 文件中加入druid依赖:
<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid-spring-boot-starter</artifactId>
			<version>1.2.8</version>
		</dependency>
  1. 在 pom.xml 文件中加入mysql驱动依赖
<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>8.0.11</version>
		</dependency>

配置 application.yml

  1. 端口配置如下
server:
  port: 9527
  1. 数据源配置如下:
spring:
  datasource:
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver  # mysql是8.x版本的需要加cj,如果是低版本5.x的不需要加这个cj
      url: jdbc:mysql://localhost:3306/cyw-study?autoReconnect=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8
      username: root
      password: xxxxxx
  1. mybatis配置如下:
mybatis:
  #classpath指的是resource文件夹
  mapper-locations: classpath:/mapper/*.xml
  configuration:
    #开启驼峰命名规则 比如数据库字段是有下划线的t_no,那么代码中就要写成Tno代码里面自动把下划线的字母变成大写
    map-underscore-to-camel-case: true
    type-aliases-package: com.o2o.data
  1. 开启日志
logging:
  level:
    com:
      o2o:
        cy: debug

配置Mapper层包路径扫描注解@MapperScan

@MapperScan("com.o2o.mapper")
public class AutoTestApplication {

	public static void main(String[] args) {
		SpringApplication.run(AutoTestApplication.class, args);
	}
} 

Springboot实战

一,首先我们先创建一个实体类Teacher,实体类其实就是对应一个数据表,其中的属性对应数据表中的字段。好处: 1.对对象实体的封装。 2.属性可以对字段定义和状态进行判断和过滤

package com.o2o.data;

import lombok.Data;

@Data
public class Teacher {
    private String Tno;
    private String Tname;

    public Teacher(String t_no, String t_name) {
        this.Tno = Tno;
        this.Tname = Tname;
    }
    public Teacher(){

    }

    public String getT_no() {
        return Tno;
    }

    public void setT_no(String t_no) {
        this.Tno = t_no;
    }

    public String getT_name() {
        return Tname;
    }

    public void setT_name(String t_name) {
        this.Tname = Tname;
    }

    @Override
    public String toString() {
        return "Teacher{" +
                "t_no='" + Tno + '\'' +
                ", t_name='" + Tname + '\'' +
                '}';
    }
}

二,接着在mapper层创建一个interface接口,需要加@Mapper注解,提供findAll()方法

package com.o2o.mapper;

import com.o2o.data.Teacher;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface TeacherMapper {
    //查询全部
    List<Teacher> findAll();
}

三,再创建一个service层interface接口和impl层实现类,需要加@Server注解

package com.o2o.service;

import com.o2o.data.Teacher;

import java.util.List;

public interface TeacherService {
    List<Teacher> findAll();
}
package com.o2o.service.impl;

import com.o2o.data.Teacher;
import com.o2o.mapper.TeacherMapper;
import com.o2o.service.TeacherService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class TeacherServiceImpl implements TeacherService {

    @Autowired
    private TeacherMapper teacherMapper;

    @Override
    public List<Teacher> findAll() {
        List<Teacher> teachers = teacherMapper.findAll();
        return teachers;
    }
}

四,创建一个mapper.xml文件,配置各种SQL语句(例如SELECT,INSERT,UPDATE和DELETE)的语句

<?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.o2o.mapper.TeacherMapper">

     <select id="findAll" resultType="com.o2o.data.Teacher">
         select * from teacher;
     </select>

</mapper>

这里重点说下<select id="findAll" resultType="com.o2o.data.Teacher">的含义

  1. select 标签的 id 属性是唯一标识,需要与mapper层接口方法名要一致
  2. resultType 表示输出结果的类型,适合无参数
  3. parameterType 表示输入参数的类型

五,创建controller层控制器,用来接收前端传入的参数

public返回的是一个list列表,因为我们查询全部getTeacher()没有参数,映射一个GetMapping请求方法,传入路径名/test

package com.o2o.controller;

import com.o2o.data.Teacher;
import com.o2o.service.TeacherService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class TeacherController {
    @Autowired
    private TeacherService teacherService;

    @GetMapping("/test")
    public List<Teacher> getTeacher(){
        List<Teacher> allTeachers =  teacherService.findAll();
          return allTeachers;
    }
}

六,启动SpingApplication类进行测试
在这里插入图片描述
浏览器输入{ip}+端口号进行访问,我们看到已经成功查询到数据库teacher表里的数据啦
在这里插入图片描述
表结构数据
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springboot整合mybatis实现增删改查 的相关文章

  • kali-linux基础命令

    文件与目录操作命令 touch 命令用于创建空白文件与修改文件时间 xff0c 格式为 xff1a touch 选项 文件 cp 命令用于复制文件或目录 xff0c 格式为 xff1a cp 选项 源文件 目标文件 mv 命令用于移动文件或
  • 我,程序员,想做人工智能,可现实劝我回头是岸!

    最近不少准备入行人工智能的粉丝向我吐槽 xff1a 1 人工智能怎么入行 xff1f 应用方向那么多 xff0c 哪个才是最适合自己的 xff1f 2 看了不少人工智能课程 xff0c 但门槛都太高了 xff0c 真正零基础的课程少之又少
  • 如何将Pyecharts绘制的 "地图" 展示在百度地图中?

    人生苦短 xff0c 快学Python xff01 Pyecharts绘图的确很棒 xff0c 尤其是地图 xff0c 那么将你的数据指标 xff0c 展示在百度地图中 xff0c 有时怎么样的一种感觉 xff1f 其实Pyecharts绘
  • 爬虫到底违法吗?这位爬虫工程师给出了答案

    作者 猪哥 来源 裸睡的猪 xff08 ID xff1a IT Pig xff09 一 自述 1 关于大学 我读的大学是个野鸡学校 xff0c 虽说是一个计算机专业 xff0c 但实际的课程内容很杂 CAD 3DMAX Office全家桶之
  • 开发者,你真正关心的问题是什么?| AI ProCon 2019

    2018 年 xff0c 上千名开发者与上百名技术专家齐聚一堂 xff0c 在 CSDN 2018 AI开发者大会上以 AI技术与应用 为核心 xff0c 深度聚焦人工智能的技术创新与行业应用 xff0c 真正做到了 只讲技术 xff0c
  • JETSON XAVIER NX入门教程(一)基础设置和安装

    1 Intro jetson xxx系列 作为nvidia公司的AIOT产品 作用非常强大 生态也是很活跃 确实是可以入门的极好产品 此处省去几万字 2 Basic install 2 1镜像烧录 就是下载不对型号设备的镜像 官网链接 然后
  • Nvidia Jetson nano 插卡插hdmi和电源无法开机显示器黑屏jetsonnano重置系统恢复

    Ensure smooth network 确保网络畅通 下载包 进下载页面下载对应NVIDIA SDK Manager NVIDIA Developer Upload deb to ubuntu vm 上传包 Install deb 安装
  • 激光雷达目标检测 (上)

    激光雷达目标检测 xff08 上 xff09 转载自美团无人专送团队 简介 安全性是自动驾驶中人们最关注的问题之一 在算法层面 xff0c 无人车对周围环境的准确感知是保证安全的基础 xff0c 因此感知算法的精度十分重要 现有感知算法的思
  • apt更换镜像源

    文章转载至 荒野雄兵的博客 https blog csdn net daerzei article details 84873964 系统说明 xff1a VMware14 Pro下Ubuntu18 04 LTS版 xff0c 64位 网上
  • 绝不拖延(转)

    我要立即行动 绝不拖延 从今天起 无论做什么事情 我要立即行动 绝不拖延 拖延是造成人世一切悲剧根源 xff0c 我要竭力避免拖延 如同逃避罪恶的引诱 曾经 我有多少美好的憧憬 我多少远大的理想 我多少切实的计划 因为拖延 而被冲刷得一干二
  • mt7601u linux驱动编译,移植MT7601U AP Linux 驱动至Orangepi-PC2开发板

    简单一下记录移植MT7601U AP Linux 驱动至Orangepi PC2开发板的过程 二 环境描述 1 Orangpi PC2开发板 Linux Orangepi 3 10 65 12 SMP PREEMPT Sat Mar 4 1
  • 黑群晖docker清理缓存_Docker容器日志查看与清理(亲测有效)

    1 问题 docker容器日志导致主机磁盘空间满了 docker logs f container name噼里啪啦一大堆 xff0c 很占用空间 xff0c 不用的日志可以清理掉了 2 解决方法 2 1 找出Docker容器日志 在lin
  • 配置华为s系列交换机mode lacp

    以S5700为例 xff1a 1 创建eth trunk 1 xff0c 并配置成LACP模式 lt Quiway gt system view Quiway sysname SwitchA SwitchA interface Eth Tr
  • 使用 KubeSphere 快速部署 Chaos Mesh

    Chaos Mesh 简介 Chaos Mesh 是一个开源的云原生混沌工程平台 xff0c 提供丰富的故障模拟类型 xff0c 具有强大的故障场景编排能力 xff0c 方便用户在开发测试中以及生产环境中模拟现实世界中可能出现的各类异常 x
  • phpstorm 2018破解版 2018.2下载安装和JetbrainsCrack.jar激活教程

    一 下载phpstrom破解版http www sdbeta com wg 2018 0330 221278 html 二 双击PhpStorm 2018 1 exe运行 xff0c 开始安装 xff0c 进入安装向导 xff0c 点击ne
  • 操作mysql_MySQL:MySQL的基本操作

    那么如果我只想要数据 xff0c 而不想要什么sql命令时 xff0c 应该如何操作呢 xff1f 可将查询存储在一个文件中并告诉mysql从文件中读取查询而不是等待键盘输入 可利用外壳程序键入重定向实用程序来完成这项工作 例如 xff0c
  • winscp 配置(详细)

    winscp 配置 xff08 详细 xff09 问题起因 想在A电脑上直接访问到B电脑的文件 xff0c 不用中间拷来拷去的 xff0c 太麻烦 所以就下载了winscp这个软件 但是在使用时出现了一些问题 xff0c 好在最终都解决了
  • 【电脑配置】二、Windows10+Ubuntu16.04双系统安装

    电脑配置之双系统安装 目录 电脑配置之双系统安装前言一 Windows10安装二 Ubuntu16 04安装1 进入BIOS模式2 分区 三 出现的问题和解决办法1 Ubuntu下引导Windows启动卡死2 Windows时间提前八小时3
  • 逆向研究QCA9563固件,查看和修改GPIO定义

    自己刷了个qca9563用作ap玩 xff0c 奈何GPIO定义不清楚 xff0c wan口灯什么的都不知道引脚定义 某快的GPIO定义网上只有寥寥言语 xff0c 在某鱼商家眼里 xff0c 这些都是能卖钱的机密信息 于是想既然有固件了
  • CMake详解CMakeLists.txt

    目录 1 CMake简介2 CMakeLists txt文件3 一个简单的CMakeLists txt入门示例4 示例 xff1a 如何给动态库添加三方库依赖 快速查询 https cmake org cmake help v2 8 8 c

随机推荐