SpringBoot集成Mybatis用法笔记

               

今天给大家整理SpringBoot集成Mybatis用法笔记。希望对大家能有所帮助!

  1. 搭建一个SpringBoot基础项目。

具体可以参考SpringBoot:搭建第一个Web程序

  1. 引入相关依赖

<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>
  1. 准备数据库脚本

创建一个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');
  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
  1. 创建实体类 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 +'}';    }}
  1. 创建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);}
  1. 创建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>
  1. 创建服务接口  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);
}
  1. 创建服务实现类 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);    }}
  1. 创建控制器  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

  1. 项目结构文件截图

               

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/270655.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络知识:交换机中的半双工与全双工知识笔记

今天小编给大家分享一下交换机中半双工与全双工相关知识&#xff0c;希望对大家能有所帮助&#xff01; 早期的网络设备HUB&#xff08;集线器&#xff09;就是半双工&#xff0c;目前基本没有人用了&#xff0c;而现在用的SWITCH&#xff08;交换机&#xff09;就是全双工。 a…

硬件知识:U盘插入电脑没反应相关解决办法整理

目录 一、U盘可能被隐藏 二、USB端口被BIOS禁用 三、电脑的USB驱动可能有问题 今天小编给大家介绍一下U盘插入电脑没反应相应的解决方案&#xff0c;希望对大家能有所帮助&#xff01; 一、U盘可能被隐藏 首先换台电脑看看是不是U盘损坏的问题&#xff0c;如果不是&#xff0c;…

分享9个实用的电脑维修技巧,赶紧收藏吧

目录 01、电脑不能上网 02、电脑蓝屏 03、没有声音 04、没有画面 05、软件无法启动 06、显示器画面不能满屏显示 07、使用过程中自动关机 08、电脑不能开机 09、电脑花屏 今天给大家分享9个实用的电脑维修技巧&#xff0c;赶紧收藏吧&#xff01; 01、电脑不能上网 常见原因1&a…

自媒体资源:分享8个免版权视频素材网站

目录 01. 知鱼素材 2、 gaiamount 3、 lifeofvids 4、Coverr 5、stock footage 6、vidsplay 7、Pixabay 8、Pexels 今天小编就给大家分享一些免版权的视频素材网站&#xff0c;有需要的小伙伴赶紧欢迎收藏&#xff01; 01. 知鱼素材 https://sucai.zhiyu.art/video 共享协议可免…

win7 mysql msi_windows下的Mysql安装与基本使用(msi)

本文针对mysql5.6与5.5一、其他版本与安装方式1.msi(mysql5.7及以上版本参考&#xff1a;https://www.cnblogs.com/zjiacun/p/6653891.html)这里我们用msi吧&#xff0c;只是单纯练习的话&#xff0c;简单很多二、msi安装(5.5-5.6)1.点击安装文件&#xff0c;在出现的安装向导上…

java中split以“.“ 、“\“、“|”分隔

今天项目里遇到以"." 、"\"、“|”分割字符串&#xff0c;直接用"." 、"\"、“|”无法分割&#xff0c;因为"." 、"\"、“|”是特殊字符&#xff0c;需要转义&#xff0c;"\\." 、"\\\"、“\…

推荐这11款免费好用的 Mac 软件

目录 1、IINA —— 全能视频播放器 02、大拍档剪辑助手 03、Dozer 04、Cheatsheet 05、Spectacle 06、Amphetamine 07、Macs Fan Control 08、AdGuard 09、Keka 10、腾讯柠檬清理 11、Cold Turkey Blocker 1、IINA —— 全能视频播放器 对于Mac OS来说&#xff0c;IINA可以说是…

三角形

源代码&#xff1a;#include<cstdio> #include<map> #define LL long long#define INF 1000000000 using namespace std; map <double,LL> i; //这个STL差不多就是一个反类型数组。 double f[100001]; LL n,Num(0); LL C(LL N,LL M) //排列组合。 {if (N<…

物理机存放mysql实例原则_MySQL优化笔记(四)--表的设计与优化(单表、多表)...

前面讲了SQL优化以及索引的使用、设计优化了&#xff0c;那么接下来就到表的设计与优化啦&#xff01;&#xff01;&#xff01;真实地去设计优化单表结构以及讲述多表设计基本原则(结合真实的生产环境的取舍来讲述)。文章结构&#xff1a;(1)单表设计与优化&#xff1b;(2)基于…

电脑维修:电脑维修必备工具整理

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

iOS appstore分级

我在周五晚上十点多的时候上传ipa到App Store&#xff0c;周六凌晨二点多就收到审核信息&#xff08;这是Apple吗&#xff0c;审核速度我就不敢相信&#xff09;&#xff0c;然后收到他们的邮件&#xff0c; 大概意思就是你的app可以销售了&#xff0c;大概要等24小时能在App S…

EasyExcel ExcelGenerateException: The index of ‘xx‘ and ‘xx‘ must be inconsistent

EasyExcel 导出Excel&#xff0c;报错提示如下 原因是两个字段的index索引值都是没按顺序来&#xff0c;导致异常&#xff0c;索引index从0开始递增

网站技巧:解决网页文本禁止复制的限制,一看就会

目录 1、浏览器扩展 2、网页打印输出 3、将网页下载到本地使用 4、OCR 图片文字识别 5、使用油猴脚本 今天小编就给大家推荐五种解除网页复制限制的小技巧&#xff0c;希望对大家能有所帮助&#xff01; 1、浏览器扩展 主要给大家推荐两款扩展&#xff1a; Simple Allow Copy&a…

电脑必备的52个专业术语,有必要了解一下

今天小编给大家分享电脑小白必备的52个专业术语&#xff0c;有必要了解一下&#xff01; PC&#xff1a;个人计算机。 AUD&#xff1a;声卡(声卡正式用语应为Sound Card) LAN&#xff1a;网卡(网卡正式用语应为Network Card) MODM&#xff1a;数据卡或调制解调器Modem HUB&…

readkeyboard方法_Linux笔记(12)| 几种并发式IO的实现方法

今天分享的是几种实现并发式IO的方法。什么是并发式IO呢&#xff1f;可以简单理解为比如要同时读取几个文件的数据&#xff0c;但是这些文件什么时候可以读取是不确定的&#xff0c;要实现当某个文件可以读取的时候就立马去读取&#xff0c;这就是并发式。首先提出一个问题&…

网络知识:IP地址的概念以及IPV4和IPV6的区别

小伙伴们看到上面的机房了吗&#xff1f;成千上万台服务器他们都少不了一个小小的IP地址&#xff0c;每台服务器都配置了一个或多个IP。今天电脑学习微信公众号小编就带大家详细了解下IP地址都是什么&#xff1f; IP地址&#xff08;Internet Protocol Address&#xff09;是指…

新安装Win10操作系统有必要设置的几个技巧

目录 1、控制面版、回收站、网络等图标放到桌面 2、找回Win10系统删除提示框 3、关闭电脑休眠并删除hiberfil.sys 睡眠缓存文件 3、关闭Microsoft Store自动更新 4、卸载Win10自带的软件 5、关闭自动播放功能 6、删除离线地图文件并禁止更新离线地图 新安装Win10操作系统有必要…

apk私钥_获取APK证书MD5、SHA1、SHA256等秘钥

一1.先把apk解压2.在META_INF目录下找到xxx.RSA文件3.确保安装了jdk并且正确配置了环境变量4.cmd中执行keytool -printcert -file xxxx.RSA目录image.png二1.确保安装了jdk并且正确配置了环境变量。2.cmd中执行keytool -printcert -jarfile xxx.apk运行效果如下&#xff1a;ima…

查看某个端口的进程 lsof -i:端口号

查看某个端口的进程 lsof -i:端口号