当前位置: 首页 > article >正文

SpringBoot + MySQL + MyBatis 实操示例教学

一、准备工作

1.导入相关依赖

        <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.1.4</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

2.配置文件application.yml

server:
  port: 8088
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: 1234

mybatis:
  mapper-locations: classpath:mapper/*xml
  type-aliases-package: com.example.domain.po

这里的mapper-locations设置的是mapper映射的xml文件位置:

如果不设置的话,调用数据库的数据就会报错:

 

二、示例代码

controller:

EmployeeController示例:

@RestController
@RequestMapping("/employee")
public class EmployeeController {

    @Autowired
    private IEmployeeService employeeService;

    @GetMapping("/getData")
    public List<Employee> getEmployeeList(){
        List<Employee> employeeList = employeeService.getData();
        System.out.println(employeeList);
       return employeeList;
    }

}

service:

IEmployeeServcie接口:

public interface IEmployeeService {

    List<Employee> getData();
}

impl:

EmployeeServiceImpl实现IEmployeeServcie接口:

@Service
public class EmplyeeServiceImpl implements IEmployeeService {

    @Autowired
    private EmployeeDao employeeDao;

    @Override
    public List<Employee> getData() {
        return employeeDao.getData();
    }
}

dao:

@Mapper
public interface EmployeeDao {

    List<Employee> getData();
}

 

resources/mapper:

EmployeeMapper.xml:

<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.dao.EmployeeDao">

    <resultMap id="employeeResultMap" type="com.example.domain.po.Employee">
        <id property="id" column="id"/>
        <result property="name" column="name"/>
        <result property="age" column="age"/>
        <result property="salary" column="salary"/>
        <result property="entryTime" column="entry_time"/>
    </resultMap>

    <select id="getData" resultMap="employeeResultMap">
        select id,name,age,salary,entry_time
        from employee
    </select>

</mapper>

mapper:

        namespace:对应的是dao中的EmployeeDao文件

select:

        id :对应的的是EmployeeDao文件方法名

        resultMap:是返回的结果是列表

                type:是列表的类型数据,案例中列表的类型数据是Employee

下图有更完整的解读:

进行测试:

测试方式一(直接访问浏览器):

http://localhost:8088/employee/getData

测试方式二(使用测试工具Postman):   

  


http://www.kler.cn/news/306917.html

相关文章:

  • 从冯唐的成事心法 看SAP协助企业战略落地到信息化
  • 车载软件架构 --- SOA设计与应用(上)
  • DAY20240913 VUE:深入解析 Vue Router 局部路由守卫:路由独享与组件内部守卫的妙用与区别
  • 自修C++PrimerPlus--类型转换、右值引用、引用中的类对象
  • 虹科方案 | 精准零部件测试!多路汽车开关按键功能检测系统
  • C++实现unordered_map和unordered_set
  • 【Kafka】分区与复制机制:解锁高性能与容错的密钥
  • 交换技术是一种在计算机网络和通信系统中广泛应用的关键技术,它主要通过交换设备(如交换机、路由器等)实现数据的转发和传输
  • VBA V3高级视频行为分析系统(含源码)
  • 数据库系统 第52节 数据库日志和恢复
  • 用Matlab求解绘制2D散点(x y)数据的最小外接圆、沿轴外接矩形
  • 代码随想录算法训练营第48天 | LeetCode739.每日温度、 LeetCode496.下一个更大元素I、 LeetCode503.下一个更大元素II
  • Linux 之 RPM [Red - Hat Package Manager]【包管理】
  • JavaScript 事件处理
  • Gateway Timeout504: 网关超时的完美解决方法
  • 【鸿蒙OH-v5.0源码分析之 Linux Kernel 部分】005 - Kernel 入口 C 函数 start_kernel() 源码分析
  • 【Webpack--007】处理其他资源--视频音频
  • PostgreSQL - tutorial
  • 我的标志:奇特的头像
  • ARM驱动学习之21_字符驱动
  • Gitlab 中几种不同的认证机制(Access Tokens,SSH Keys,Deploy Tokens,Deploy Keys)
  • Linux线程同步:深度解析条件变量接口
  • Deep Learning-Based Object Pose Estimation:A Comprehensive Survey
  • VUE使用echarts编写甘特图(组件)
  • AI写作助力自媒体,传统模式将被颠覆
  • 网络安全学习(二)初识kali
  • SAP EWM Cross Docking (CD) 越库操作
  • 探索Python中的装饰器
  • 前端基础知识+算法(一)
  • 8- 【JavaWeb】用HTML和CSS来创建一个简洁的登录界面