SpringBoot使用Mybatis教程
文章目录
- 新建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教程相关推荐
- (一)SpringBoot 整合 MyBatis
一.工具 IDE:idea.DB:mysql 二.创建SpringBoot工程 在Idea中使用SpringInitializr模板创建SpringBoot工程,依赖选择如下: 这里也可以不选JDBC ...
- springboot整合mysql5.7_详解SpringBoot整合MyBatis详细教程
1. 导入依赖 首先新建一个springboot项目,勾选组件时勾选Spring Web.JDBC API.MySQL Driver 然后导入以下整合依赖 org.mybatis.spring.boo ...
- Eclipse中实现SpringBoot与Mybatis整合(图文教程带源码)
场景 数据库中数据 实现效果 项目结构 前面参照 Eclipse中新建SpringBoot项目并输出HelloWorld https://blog.csdn.net/BADAO_LIUMANG_QIZ ...
- SpringBoot教程(十一) | SpringBoot集成Mybatis
上一篇文章我们介绍了SpringBoot集成JdbcTemplate.简单体验了一下JdbcTemplate框架的用法,今天的内容比较重要,我们来介绍一下SpringBoot集成Mybatis的步骤. ...
- Mybatis教程-实战看这一篇就够了
推荐SpringCloud教程:https://blog.csdn.net/hellozpc/article/details/83692496 推荐Guava Cache教程:https://blog ...
- SpringBoot整合Mybatis超详细流程
SpringBoot整合Mybatis超详细流程 文章目录 SpringBoot整合Mybatis超详细流程 前言 详细流程 0.引入Mybatis 1.创建数据 2.创建程序目录 3.理解后台访问流 ...
- SpringBoot整合Mybatis(高级)
SpringBoot整合Mybatis(高级) 文章目录 SpringBoot整合Mybatis(高级) 前言 基础环境配置 增删改查 ResultMap 复杂查询 多对一 一对多 动态SQL if ...
- springboot 系列技术教程目录
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 一.教程目录地址: springboot系列技术教程目录 二.教程内容: springboot2.X ...
- springboot 项目输出 sql 到控制台、 SpringBoot 中 Mybatis 打印 sql
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. SpringBoot中Mybatis打印sql 如果使用的是 application.propert ...
- SpringBoot的高级教程
SpringBoot的高级教程 一.SpringBoot缓存 缓存的场景 临时性数据存储[校验码] 避免频繁因为相同的内容查询数据库[查询的信息] 1.JSR107缓存规范 用的比较少 Java Ca ...
最新文章
- React 数字取整
- ThreadPool原理介绍
- Java应用中使用ShutdownHook友好地清理现场(转)
- ad 原理图差分线_采用差分PulSAR ADC AD7982转换单端信号电路图
- html5 js选择器,使用HTML5的JS选择器操作页面中的元素
- ML.NET 推荐引擎中一类矩阵因子分解的缺陷
- 《朝花夕拾》金句摘抄(三)
- 《互联网人如厕报告》,厕所竟成互联网人的 “最后净土”
- Android中的savedInstanceState
- 手把手教你如何配置DBeaver对接FusionInsigth MRS Spark2x
- Linux下两种TCP网络服务器实现方式:循环服务并发服务
- 教你把gps服务器修改为中国加速搜星,Android的GPS加速搜星的原理和方法
- ftrace 的使用【转】
- 数据库存储过程讲解与实例
- 解决海外安卓设备,WIFI“已连接 但无法访问互联网”问题
- Excel4.0宏病毒查看隐藏宏代码
- C语言游戏之贪吃蛇--链表实现
- npm打包报错ERROR in ./src/main/webapp/app/core解决方法
- 国家分级保护规范要求解读
- STM32节点移植lorawan协议连接腾讯云物联网开发平台(IoT Explorer)