内容摘要:今天给大家整理SpringBoot集成Mybatis用法笔记。希望对大家能有所帮助!1.搭建一个SpringBoot基础项目。具体可以参考SpringBoot:搭建第一个Web程序2.引入相关依赖&l

今天给大家整理SpringBoot集成Mybatis用法笔记。集成记希望对大家能有所帮助!
1.搭建一个SpringBoot基础项目。法笔
具体可以参考SpringBoot:搭建第一个Web程序
2.引入相关依赖
<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>
3.准备数据库脚本
创建一个Mysql数据库,集成记数据库名为test,服务器租用法笔然后执行一下脚本。集成记
/* Navicat MySQL Data Transfer Source Server : 本地MYSQL Source Server Version : 50644 Source Host : localhost:3306 Source Database : test Target Server Type : MYSQL Target Server Version : 50644 File 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);
4.配置项目配置文件 application.yml
server: port: 8090 mybatis: configuration: map-underscore-to-camel-case: true mapper-locations: mybatis/**/*Mapper.xml spring: datasource: driverClassName: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf8 username: root password: root logging: level: my.springboot.mybatis.dao: debug
5.创建实体类 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 + }; } }
6.创建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; @Mapper public 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); }
7.创建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>
8.创建服务接口 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); }
9.创建服务实现类 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; @Service public 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); } }
10.创建控制器 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; @Controller public 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
11.项目结构文件截图

本文转载自微信公众号「IT技术分享社区」,
源码下载可以通过以下二维码关注。集成记转载本文请联系IT技术分享社区公众号。法笔

集成记
博客链接:https://programmerblog.xyz
集成记
云服务器