springboot使用mybatis
创始人
2024-02-22 08:50:25
0

springboot使用mybatis

本文目录

    • springboot使用mybatis
      • 引入maven依赖
      • 新增数据库配置
      • 创建数据库表
      • 实体类
      • 编写mapper接口层
        • 通过xml文件
        • mapper中直接使用注解
      • 编写mapper.xml
        • IDEA创建mybatis的xml文件
        • parameterType
      • 启动类
      • controller调用

引入maven依赖

        org.springframework.bootspring-boot-starterorg.springframework.bootspring-boot-starter-testtestorg.springframework.bootspring-boot-starter-weborg.mybatis.spring.bootmybatis-spring-boot-starter2.2.0mysqlmysql-connector-java8.0.31runtimeorg.projectlomboklomboktruecom.alibabafastjson1.2.51

新增数据库配置

server.port=8080spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/demomybatis?characterEncoding=utf-8&serverTimezone=UTC&useSSL=false
spring.datasource.username=xx
spring.datasource.password=xx
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=truemybatis.mapper-locations = classpath:mapping/*Mapper.xml

创建数据库表

Person数据库如下图

Address数据库如下图

实体类

@Data
public class Person {private String id;private String name;}
@Data
public class Address {private String id;private String addrName;}

编写mapper接口层

通过xml文件

@Mapper //表示这是Mybatis的mapper类
@Repository
public interface PersonMapper {List queryUserList();Person queryUserByID(String id);int addUser(Person person);int updateUser(Person person);int deleteUser(String id);}

mapper中直接使用注解

@Mapper //表示这是Mybatis的mapper类
@Repository
public interface AddressMapper {@Select("SELECT * FROM address WHERE addrName = #{name}")Address findByName(@Param("name") String name);@Insert("INSERT INTO address VALUES (#{id}, #{addrName},)")int insert(@Param("id") String id, @Param("addrName") String addrName);
}

编写mapper.xml



insert into person(id,name) values (#{id},#{name})update person set name=#{name} where id=#{id}delete from person where id=#{id}

IDEA创建mybatis的xml文件

File---->Settings

Editor---->File And Code Templates —>中间选中Files ----->点击+号,添加模板 ----->输入模板名字:Name:XML File.xml (name可以自定义) ------>后缀名extension:xml

在面板中间输入内容




选中文件夹----->New-------->找到XML File,就可以创建xml文件了

parameterType

Mybatis的Mapper文件中的select、insert、update、delete元素中有一个parameterType属性,用于对应的mapper接口方法接受的参数类型

启动类

在启动类里加上注解用于给出需要扫描的mapper文件路径@MapperScan

@SpringBootApplication
@MapperScan("com.example.demo")
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}}

controller调用

@CrossOrigin
@RestController
@RequestMapping("/define")
public class DemoController {@AutowiredPersonMapper personMapper;@GetMapping("/getmybatis")public List getmybatis() {List res= personMapper.queryUserList();return res;}@GetMapping("/queryUserList")public List queryUserList() {List users = personMapper.queryUserList();return users;}@GetMapping("/queryUserByID")public Person queryUserByID() {Person user = personMapper.queryUserByID("2");return user;}@GetMapping("/addUser")public String addUser() {Person p = new Person();p.setId("4");p.setName("zzz");personMapper.addUser(p);return "增加用户完毕";}@GetMapping("/updateUser")public String updateUser() {Person p = new Person();p.setId("2");p.setName("zzz");personMapper.updateUser(p);return "修改用户完毕";}@GetMapping("/deleteUser")public String deleteUser() {personMapper.deleteUser("4");return "删除用户完毕";}@AutowiredAddressMapper addressMapper;@RequestMapping("/addAddress")public int addUser(String userName, String age) {return addressMapper.insert(age,userName);}@RequestMapping("/getAddress")public Address getUserByName(String userName) {return addressMapper.findByName(userName);}
}

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...