文章目录

  • 新建SpringBoot项目
  • 引入mybatis依赖
  • 如何使用mybatis?
    • 1.配置mybatis
      • ①.数据库配置
      • ②.mybatis相关配置
    • 2.使用mybatis
      • ①.创建JavaBean
      • ②.创建mapper
        • 1).使用注解方式
        • 2).使用xml方式
      • ③.调用

新建SpringBoot项目

本文所使用的代码编辑器为IntelliJ IDEA,这里简单介绍一下如何使用IDEA新建一个SpringBoot项目。
File—>New—>Project—>Spring Initializr

选择JDK版本,点击Next

输入项目包名,选择语言,打包方式,java版本,版本号等,点击Next

后面会使用mybatis,所以这里选择MyBatis Framework依赖,其他依赖项可以根据自己的项目需要选择,当然,这里也可以什么也不选择,后面再pom.xml文件中来添加。至此,一个基础的SpringBoot项目就搭建好了。

引入mybatis依赖

如果在新建项目的时候选择了mybatis依赖可直接跳过此步骤。

打开pom文件加入以下依赖

        <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><scope>runtime</scope></dependency>

如何使用mybatis?

1.配置mybatis

①.数据库配置

数据库相关配置,包括数据库地址、用户名、数据库密码等。

打开resources文件夹下的application.properties文件,初始时此文件为空,在此处配合数据库地址、用户名、密码、编码方式、时区等,如上所示。

②.mybatis相关配置

A处为配置数据库表对应JavaBean中的实体包路径和对应的mapper文件路径

此处必须配置MapperScan,否则不能使用,关于mapper的使用后面会说到。到这里相关的配置项差不多已经完成了,可以开始使用mybatis了。

2.使用mybatis

①.创建JavaBean

新建数据库表需要映射到java文件的类,注意:这里的所有类都必须建立在之前所指定的com.example.demo.dao.entity 包下。

package com.example.demo.dao.entity;import java.util.Date;public class Person {/*** 主键*/private String personId;/*** 姓名*/private String name;/***年龄*/private Integer age;/***生日*/private Date birthDay;/***爱好*/private String hobby;public String getPersonId() {return personId;}public void setPersonId(String personId) {this.personId = personId;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Date getBirthDay() {return birthDay;}public void setBirthDay(Date birthDay) {this.birthDay = birthDay;}public String getHobby() {return hobby;}public void setHobby(String hobby) {this.hobby = hobby;}
}
②.创建mapper

mapper对应数据库中增删改查的操作,mapper的使用有两种方式,一:不使用xml直接在mapper.java文件中使用注解完成;二:使用xml方式。

1).使用注解方式
package com.example.demo.dao.mapper;import com.example.demo.dao.entity.Person;
import org.apache.ibatis.annotations.*;import java.util.Date;public interface PersonMapper {/*** 增** @param person*/@Insert("INSERT INTO person(PERSON_ID,NAME,AGE,BIRTH_DAY,HOBBY) VALUES(" +"#{personId}, #{name}, #{age},#{birthDay}, #{hobby})")void addPerson(Person person);/*** 删** @param personId*/@Delete("DELETE FROM person WHERE PERSON_ID=#{personId}")void deletePerson(String personId);/*** 改** @param person*/@Update("UPDATE person SET NAME = #{name},AGE = #{age},BIRTH_DAY = #{birthDay},HOBBY = #{hobby} WHERE PERSON_ID = #{personId}")void updatePerson(Person person);/*** 查** @param personId* @return*/@Select("SELECT * FROM person WHERE PERSON_ID = #{personId}")@Results({@Result(property = "personId", column = "PERSON_ID"),@Result(property = "name", column = "NAME"),@Result(property = "age", column = "AGE"),@Result(property = "birthDay", column = "BIRTH_DAY", javaType = Date.class),@Result(property = "hobby", column = "HOBBY")})Person queryPerson(String personId);
}

使用注解方法可以直接调用此接口实现增删改查不用创建xml,就是代码看起来不太简洁。

2).使用xml方式

1、新建mapper.java文件

package com.example.demo.dao.mapper;import com.example.demo.dao.entity.Person;public interface PersonMapperByXml {/*** 增** @param person*/void addPerson(Person person);/*** 删** @param personId*/void deletePerson(String personId);/*** 改** @param person*/void updatePerson(Person person);/*** 查** @param personId* @return*/Person queryPerson(String personId);
}

2、创建mapper.xml文件
注意xml文件必须建立在上文配置中指定的文件夹下且必须和mapper.java文件同名。

<?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.demo.dao.mapper.PersonMapperByXml"><resultMap id="PersonMap" type="com.example.demo.dao.entity.Person"><result column="PERSON_ID" property="personId"/><result column="NAME" property="name"/><result column="AGE" property="age"/><result column="BIRTH_DAY" property="birthDay" javaType="Date"/><result column="HOBBY" property="hobby"/></resultMap><insert id="addPerson" parameterType="com.example.demo.dao.entity.Person"statementType="CALLABLE">insert into person(PERSON_ID, NAME, AGE, BIRTH_DAY, HOBBY)values (#{personId}, #{name}, #{age}, #{birthDay}, #{hobby})</insert><delete id="deletePerson" parameterType="String" statementType="CALLABLE">deletefrom personwhere PERSON_ID = #{personId}</delete><update id="updatePerson" parameterType="com.example.demo.dao.entity.Person" statementType="CALLABLE">update personset NAME      = #{name},AGE       = #{age},BIRTH_DAY = #{birthDay},HOBBY     = #{hobby}where PERSON_ID = #{personId}</update><select id="queryPerson" parameterType="String" resultMap="PersonMap">select *from personwhere PERSON_ID = #{personId}</select>
</mapper>

注意:id对应mapper.java文件中的方法名,parameterType为方法输入参数类型。

③.调用
package com.example.demo.controller;import com.example.demo.dao.entity.Person;
import com.example.demo.dao.mapper.PersonMapper;
import com.example.demo.dao.mapper.PersonMapperByXml;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;import java.util.Date;@RestController
public class DemoController {@Autowiredprivate PersonMapperByXml personMapperByXml;@Autowiredprivate PersonMapper personMapper;@RequestMapping(value = "/addPerson", method = RequestMethod.GET)public void addPerson() {Person person = new Person();person.setPersonId("11111111111111111");person.setName("张三");person.setAge(20);person.setBirthDay(new Date());person.setHobby("画画");personMapper.addPerson(person);//  personMapperByXml.addPerson(person);}@RequestMapping(value = "/deletePerson", method = RequestMethod.GET)public void deletePerson() {personMapper.deletePerson("11111111111111111");// personMapperByXml.deletePerson("11111111111111111");}@RequestMapping(value = "/queryPerson", method = RequestMethod.GET)public void queryPerson() {Person person = personMapper.queryPerson("11111111111111111");System.out.println(person.getName());}@RequestMapping(value = "/updatePerson", method = RequestMethod.GET)public void updatePerson() {Person person = personMapper.queryPerson("11111111111111111");System.out.println(person.getName());person.setName(person.getName() + "A");personMapperByXml.updatePerson(person);}
}

最后附上Demo下载链接

SpringBoot使用Mybatis教程相关推荐

  1. (一)SpringBoot 整合 MyBatis

    一.工具 IDE:idea.DB:mysql 二.创建SpringBoot工程 在Idea中使用SpringInitializr模板创建SpringBoot工程,依赖选择如下: 这里也可以不选JDBC ...

  2. springboot整合mysql5.7_详解SpringBoot整合MyBatis详细教程

    1. 导入依赖 首先新建一个springboot项目,勾选组件时勾选Spring Web.JDBC API.MySQL Driver 然后导入以下整合依赖 org.mybatis.spring.boo ...

  3. Eclipse中实现SpringBoot与Mybatis整合(图文教程带源码)

    场景 数据库中数据 实现效果 项目结构 前面参照 Eclipse中新建SpringBoot项目并输出HelloWorld https://blog.csdn.net/BADAO_LIUMANG_QIZ ...

  4. SpringBoot教程(十一) | SpringBoot集成Mybatis

    上一篇文章我们介绍了SpringBoot集成JdbcTemplate.简单体验了一下JdbcTemplate框架的用法,今天的内容比较重要,我们来介绍一下SpringBoot集成Mybatis的步骤. ...

  5. Mybatis教程-实战看这一篇就够了

    推荐SpringCloud教程:https://blog.csdn.net/hellozpc/article/details/83692496 推荐Guava Cache教程:https://blog ...

  6. SpringBoot整合Mybatis超详细流程

    SpringBoot整合Mybatis超详细流程 文章目录 SpringBoot整合Mybatis超详细流程 前言 详细流程 0.引入Mybatis 1.创建数据 2.创建程序目录 3.理解后台访问流 ...

  7. SpringBoot整合Mybatis(高级)

    SpringBoot整合Mybatis(高级) 文章目录 SpringBoot整合Mybatis(高级) 前言 基础环境配置 增删改查 ResultMap 复杂查询 多对一 一对多 动态SQL if ...

  8. springboot 系列技术教程目录

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 一.教程目录地址: springboot系列技术教程目录 二.教程内容: springboot2.X ...

  9. springboot 项目输出 sql 到控制台、 SpringBoot 中 Mybatis 打印 sql

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. SpringBoot中Mybatis打印sql 如果使用的是 application.propert ...

  10. SpringBoot的高级教程

    SpringBoot的高级教程 一.SpringBoot缓存 缓存的场景 临时性数据存储[校验码] 避免频繁因为相同的内容查询数据库[查询的信息] 1.JSR107缓存规范 用的比较少 Java Ca ...

最新文章

  1. React 数字取整
  2. ThreadPool原理介绍
  3. Java应用中使用ShutdownHook友好地清理现场(转)
  4. ad 原理图差分线_采用差分PulSAR ADC AD7982转换单端信号电路图
  5. html5 js选择器,使用HTML5的JS选择器操作页面中的元素
  6. ML.NET 推荐引擎中一类矩阵因子分解的缺陷
  7. 《朝花夕拾》金句摘抄(三)
  8. 《互联网人如厕报告》,厕所竟成互联网人的 “最后净土”
  9. Android中的savedInstanceState
  10. 手把手教你如何配置DBeaver对接FusionInsigth MRS Spark2x
  11. Linux下两种TCP网络服务器实现方式:循环服务并发服务
  12. 教你把gps服务器修改为中国加速搜星,Android的GPS加速搜星的原理和方法
  13. ftrace 的使用【转】
  14. 数据库存储过程讲解与实例
  15. 解决海外安卓设备,WIFI“已连接 但无法访问互联网”问题
  16. Excel4.0宏病毒查看隐藏宏代码
  17. C语言游戏之贪吃蛇--链表实现
  18. npm打包报错ERROR in ./src/main/webapp/app/core解决方法
  19. 国家分级保护规范要求解读
  20. STM32节点移植lorawan协议连接腾讯云物联网开发平台(IoT Explorer)

热门文章

  1. 跟着鬼哥学爬虫-2-糗事百科
  2. Java初学者可以实现的简单小程序(建议收藏学习)
  3. 如何正确的卸载MATLAB7?
  4. GJB150A-2009中温度试验随记
  5. C语言项目 ---- 纸牌游戏(详细讲解 + 全部代码 + 运行图片)
  6. 人人商城APP打包教程
  7. RFID课程设计之图书管理系统
  8. Unicode官网Code Charts下载。
  9. vjc机器人灰度怎么编程_VJC1.5仿真版说明
  10. Python画图之散点图(plt.scatter)