应用开发

SpringBoot集成Mybatis用法笔记

时间:2010-12-5 17:23:32  作者:人工智能   来源:数据库  查看:  评论:0
内容摘要:今天给大家整理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

集成记云服务器
copyright © 2025 powered by 益强资讯全景  滇ICP备2023006006号-31sitemap