SpringBoot集成Mybatis用法笔记
今天给大家整理SpringBoot集成Mybatis用法笔记。希望对大家能有所帮助!
搭建一个SpringBoot基础项目。
具体可以参考SpringBoot:搭建第一个Web程序
引入相关依赖
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><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.3</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency></dependencies>
准备数据库脚本
创建一个Mysql数据库,数据库名为test,然后执行一下脚本。
/*Navicat MySQL Data Transfer
Source Server : 本地MYSQLSource Server Version : 50644Source Host : localhost:3306Source Database : test
Target Server Type : MYSQLTarget Server Version : 50644File Encoding : 65001
Date: 2021-05-16 17:20:26*/
SET FOREIGN_KEY_CHECKS=0;
-- ------------------------------ Table structure for t_user-- ----------------------------DROP TABLE IF EXISTS `t_user`;CREATE TABLE `t_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_name` varchar(255) CHARACTER SET armscii8 DEFAULT NULL, `password` varchar(255) CHARACTER SET armscii8 DEFAULT NULL, `last_login_time` datetime DEFAULT NULL, `sex` tinyint(4) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
-- ------------------------------ Records of t_user-- ----------------------------INSERT INTO `t_user` VALUES ('1', 'xiaoxin', '123', '2019-07-27 16:01:21', '1');INSERT INTO `t_user` VALUES ('2', 'jack jo', '123', '2019-07-24 16:01:37', '1');INSERT INTO `t_user` VALUES ('4', 'landengdeng', '123', '2019-07-24 16:01:37', '1');INSERT INTO `t_user` VALUES ('5', 'max', '123', '2019-07-24 16:01:37', '1');INSERT INTO `t_user` VALUES ('6', 'liua11', '123456', null, '1');INSERT INTO `t_user` VALUES ('7', 'xiaozhang', '888888', null, '1');
配置项目配置文件 application.yml
server:port: 8090mybatis:configuration:map-underscore-to-camel-case: true mapper-locations: mybatis/**/*Mapper.xml
spring:datasource:driverClassName: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf8username: rootpassword: rootlogging:level:my.springboot.mybatis.dao: debug
创建实体类 UserDO.java
package my.springboot.mybatis.entity;
import java.util.Date;
public class UserDO {private Integer id;private String userName;private String password;private Integer sex;private Date lastLoginTime;
public Integer getId() {return id; }
public void setId(Integer id) {this.id = id; }
public String getUserName() {return userName; }
public void setUserName(String userName) {this.userName = userName; }
public String getPassword() {return password; }
public void setPassword(String password) {this.password = password; }
public Integer getSex() {return sex; }
public void setSex(Integer sex) {this.sex = sex; }
public Date getLastLoginTime() {return lastLoginTime; }
public void setLastLoginTime(Date lastLoginTime) {this.lastLoginTime = lastLoginTime; }
@Override public String toString() {return "UserDO{" +"id=" + id +", userName='" + userName + '\'' +", password='" + password + '\'' +", sex=" + sex +", lastLoginTime=" + lastLoginTime +'}'; }}
创建mapper文件 UserInfoMapper.java
package my.springboot.mybatis.dao;
import java.util.List;import java.util.Map;import my.springboot.mybatis.entity.UserDO;import org.apache.ibatis.annotations.Mapper;
@Mapperpublic interface UserInfoMapper { UserDO get(Integer id); List<UserDO> list(Map<String, Object> map);int count(Map<String, Object> map);int save(UserDO user);int update(UserDO user);int remove(Integer id);int batchRemove(Integer[] ids);}
创建Mapper映射文件 UserInfoMapper.xml
<?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="my.springboot.mybatis.dao.UserInfoMapper"><select id="get" resultType="my.springboot.mybatis.entity.UserDO"> select id,user_name,password,last_login_time,sex from t_user where id = #{value}</select><select id="list" resultType="my.springboot.mybatis.entity.UserDO"> select id,user_name,password,last_login_time,sex from t_user<where><if test="id != null and id != '-1' " > and id = #{id} </if><if test="userName != null and userName != '' " > and user_name = #{userName} </if><if test="password != null and password != '' " > and password = #{password} </if><if test="lastLoginTime != null and lastLoginTime != '' " > and last_login_time = #{lastLoginTime} </if><if test="sex != null and sex != '-1' " > and sex = #{sex} </if></where><choose><when test="sort != null and sort.trim() != ''"> order by ${sort} ${order}</when><otherwise> order by id desc</otherwise></choose><if test="offset != null and limit != null"> limit #{offset}, #{limit}</if></select><select id="count" resultType="int"> select count(*) from t_user<where><if test="id != null and id != '-1' " > and id = #{id} </if><if test="userName != null and userName != '' " > and user_name = #{userName} </if><if test="password != null and password != '' " > and password = #{password} </if><if test="lastLoginTime != null and lastLoginTime != '' " > and last_login_time = #{lastLoginTime} </if><if test="sex != null and sex != '-1' " > and sex = #{sex} </if></where></select><insert id="save" parameterType="my.springboot.mybatis.entity.UserDO" useGeneratedKeys="true" keyProperty="id"> insert into t_user ( user_name, password, last_login_time, sex) values ( #{userName}, #{password}, #{lastLoginTime}, #{sex})</insert><update id="update" parameterType="my.springboot.mybatis.entity.UserDO"> update t_user<set><if test="userName != null">user_name = #{userName}, </if><if test="password != null">password = #{password}, </if><if test="lastLoginTime != null">last_login_time = #{lastLoginTime}, </if><if test="sex != null">sex = #{sex}</if></set> where id = #{id}</update><delete id="remove"> delete from t_user where id = #{value}</delete>
<delete id="batchRemove"> delete from t_user where id in<foreach item="id" collection="array" open="(" separator="," close=")"> #{id}</foreach></delete></mapper>
创建服务接口 IUserInfoService.java
package my.springboot.mybatis.service;import my.springboot.mybatis.entity.UserDO;
import java.util.List;
public interface IUserInfoService { List<UserDO> findAll();UserDO findById(Integer id);
void insert(UserDO model);Integer update(UserDO model);Integer deleteById(Integer id);
}
创建服务实现类 UserInfoService.java
package my.springboot.mybatis.service.impl;import my.springboot.mybatis.dao.UserInfoMapper;import my.springboot.mybatis.entity.UserDO;import my.springboot.mybatis.service.IUserInfoService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;
import java.util.List;@Servicepublic class UserInfoService implements IUserInfoService {@Autowired private UserInfoMapper mapper;@Override public List<UserDO> findAll() {return mapper.list(null); }
@Override public UserDO findById(Integer id) {return mapper.get(id); }
@Override public void insert(UserDO model) {mapper.save(model); }
@Override public Integer update(UserDO model) {return mapper.update(model); }
@Override public Integer deleteById(Integer id) {return mapper.remove(id); }}
创建控制器 HomeController.java
package my.springboot.mybatis.controller;import my.springboot.mybatis.entity.UserDO;import my.springboot.mybatis.service.IUserInfoService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;
import javax.jws.soap.SOAPBinding;import java.util.Date;@Controllerpublic class HomeController {@Autowired private IUserInfoService userInfoService;@RequestMapping("index") //注解映射请求路径 @ResponseBody //可以将java对象转为json格式的数据 public String index() { UserDO user=userInfoService.findById(1);// 新增用户 UserDO add=new UserDO(); add.setSex(1); add.setUserName("xiaozhang"); add.setPassword("888888"); add.setLastLoginTime(null);//userInfoService.insert(add); // 更新用户 user.setUserName("xiaoxin");//userInfoService.update(user); // 删除用户 userInfoService.deleteById(3);
return "Hello World !"; }}
启动地址:http://localhost:8090/index
项目结构文件截图
SpringBoot集成Mybatis用法笔记相关推荐
- SpringBoot集成Redis用法笔记
今天给大家整理一下SpringBoot集成Redis用法笔记,希望对大家能有所帮助! 一.Redis优点介绍 1.速度快 不需要等待磁盘的IO,在内存之间进行的数据存储和查询,速度非常快.当然,缓存的 ...
- java整合mybatis,springboot集成mybatis
# springboot集成mybatis springboot基础mybatis还是很简单的,比之前springmvc集成mybatis要少很多配置,只要大家按照步骤一步一步来,几分钟就 能实现.具 ...
- SpringBoot教程(十一) | SpringBoot集成Mybatis
上一篇文章我们介绍了SpringBoot集成JdbcTemplate.简单体验了一下JdbcTemplate框架的用法,今天的内容比较重要,我们来介绍一下SpringBoot集成Mybatis的步骤. ...
- BindingException: Invalid bound statement (not found)问题排查:SpringBoot集成Mybatis重点分析...
重构代码,方法抛出异常:BindingException: Invalid bound statement (not found) 提示信息很明显:mybatis没有提供某方法 先不解释问题原因和排查 ...
- springboot集成mybatis源码分析-mybatis的mapper执行查询时的流程(三)
springboot集成mybatis源码分析-mybatis的mapper执行查询时的流程(三) 例: package com.example.demo.service;import com.exa ...
- springboot集成mybatis源码分析-启动加载mybatis过程(二)
springboot集成mybatis源码分析-启动加载mybatis过程(二) 1.springboot项目最核心的就是自动加载配置,该功能则依赖的是一个注解@SpringBootApplicati ...
- springboot集成mybatis源码分析(一)
springboot集成mybatis源码分析(一) 本篇文章只是简单接受使用,具体源码解析请看后续文章 1.新建springboot项目,并导入mybatis的pom配置 配置数据库驱动和mybat ...
- Java 捕获 mybatis异常_3 springboot集成mybatis和全局异常捕获
mybatis有两种方式,一种是基于XML,一种是基于注解 springboot集成mybatis 首先先创建表,这里都简化了 DROP TABLE IF EXISTS `user`; CREATE ...
- Springboot集成mybatis通用Mapper与分页插件PageHelper
Springboot集成mybatis通用Mapper与分页插件PageHelper 插件介绍 通用 Mapper 是一个可以实现任意 MyBatis 通用方法的框架,项目提供了常规的增删改查操作以及 ...
最新文章
- mysql 选项_mysql常用选项
- netty 对 protobuf 协议的解码与包装探究(2)
- rust(49)-图像(2)
- php 主页子标题修改,关于有部分用户默认PC主页大标题标签修改无效的答疑.
- slf4j+log4j2的整合配置
- HTML页面背景音乐控制
- 防止过拟合以及解决过拟合
- Redis底层实现--字符串
- 作者:高辉,男,博士,中国国防科技信息中心工程师。
- 【Todo】RTP/RTCP/RTSP/SIP/SDP 等多媒体传输和会话协议
- centos7 卸载安装失败的mysql7
- go 1.5 国内下载地址
- 日志收集神器 Logstash,闪亮登场~
- flutter用英语怎么说_手机流量套餐用英语怎么说?
- 【Python】SyntaxError: Non-ASCII character '\xe8' in file
- Linux如何查找软件的安装位置
- Python数据库sqlite3详解
- Matlab闪退打不开解决方法
- OPC Expert 最新版Crack
- Timer 和TimerTask分析
热门文章
- Halcon求取矩形顶点坐标
- 【图像处理】——遍历图像所有像素的方法(for 循环和np.where遍历)应用在模板制作
- C++总结笔记(七)—— 运算符重载
- 结构体指针需要申请指针内存,结构体对象不需要申请对象内存
- 由Google Protocol Buffer的小例子引起的g++编译问题
- html中单选框颜色怎么改,如何更改单选按钮的颜色?
- php生成图片验证码代码,PHP生成图片验证码以及点击切换的代码
- 列举ospf的5种报文类型_危险品货物各种包装类型以及装箱技巧
- 3. 什么是icmp?icmp与ip的关系_你知道如何跟女生,确定恋人关系吗?
- linux ubuntu bionic,尝试在Linux Ubuntu 18.04 Bionic上安装Docker CE时出现错误?