首页 > 其他分享 >SpringBoot整合MyBatis

SpringBoot整合MyBatis

时间:2023-02-15 19:13:27浏览次数:31  
标签:username SpringBoot demo 整合 starry MyBatis import com public

SpringBoot整合MyBatis

  1. 在pom文件中添加以下坐标,增加mybatis依赖,和数据库驱动依赖

    <!--导入Mybatis依赖坐标-->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>${mybatis.version}</version>
    </dependency>
    <!--导入mysql依赖,如果mysql版本是5.7,则应使用mysql:mysql-connector-java-->
    <dependency>
        <groupId>com.mysql</groupId>
        <artifactId>mysql-connector-j</artifactId>
    </dependency>
    
  2. 删除resources目录下的application.properties,并新建application.yml对数据库连接进行配置

    # 配置数据库连接
    spring:
      datasource:
        url: jdbc:mysql:///springboot_demo
        username: root
        password: 123456
        driver-class-name: com.mysql.cj.jdbc.Driver
    
  3. 配置Mybatis

    mybatis:
      # 配置实体类别名
      type-aliases-package: com.starry.demo.entity
      # 配置mapper.xml位置
      mapper-locations: classpath:mapper/*.xml
      # 下划线转驼峰
      configuration:
        map-underscore-to-camel-case: true
    
  4. application.yml

    # 配置数据库连接
    spring:
      datasource:
        url: jdbc:mysql:///
        username: root
        password: 123456
        driver-class-name: com.mysql.cj.jdbc.Driver
    
    mybatis:
      # 配置实体类别名
      type-aliases-package: com.starry.demo.entity
      # 配置mapper.xml位置
      mapper-locations: classpath:mapper/*.xml
    
  5. 在启动类上加上@MapperScan注解

    package com.starry.demo;
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    // 配置mybatis的扫描路径
    @MapperScan("com.starry.demo.dao")
    public class DemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    
    }
    
  6. 执行以下sql脚本

    CREATE TABLE `sys_user`(
    	user_id bigint not null primary key auto_increment,
    	username VARCHAR(50) not null unique,
    	`password` varchar(64) not null,
    	`email` varchar(50) null,
    	`phone` varchar(50) null,
    	create_time datetime,
    	update_time datetime,
    	create_by varchar(50),
    	update_by varchar(50)
    );
    
  7. 新建entity包并新增实体类

    package com.starry.demo.entity;
    
    import lombok.Data;
    
    import java.util.Date;
    
    @Data
    public class SysUser {
        
        private Long userId;
        
        private String username;
        
        private String password;
        
        private String email;
        
        private String phone;
        
        private Date createTime;
        
        private Date updateTime;
        
        private String createBy;
        
        private String updateBy;
        
    }
    
    
  8. 新建dao包并编写SysUserDao接口

    package com.starry.demo.dao;
    
    import com.starry.demo.entity.SysUser;
    import org.springframework.stereotype.Repository;
    
    @Repository // 这个注解表示它是一个数据访问层
    public interface SysUserDao {
        
        SysUser selectByUsername(String username);
        
        int insert(SysUser sysUser);
        
    }
    
  9. 在resouces目录下新建mapper目录并在此编写SysUserMapper.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="com.starry.demo.dao.SysUserDao">
    
        <select id="selectByUsername" resultType="sysUser" parameterType="string">
            select *
            from sys_user
            where username = #{username}
        </select>
    
        <insert id="insert" parameterType="sysUser">
            insert into sys_user(`username`, `password`, `email`, `phone`, `create_time`, `create_by`)
            values (#{username}, #{password}, #{email}, #{phone}, now(), #{createBy})
        </insert>
    
    </mapper>
    
  10. 新建service和service.impl包并编写SysUserService和SysUserServiceImpl的代码

package com.starry.demo.service;

import com.starry.demo.entity.SysUser;

public interface SysUserService {

    SysUser getByUsername(String username);

    boolean saveOrUpdate(SysUser sysUser);

}

package com.starry.demo.service.impl;

import com.starry.demo.dao.SysUserDao;
import com.starry.demo.entity.SysUser;
import com.starry.demo.service.SysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class SysUserServiceImpl implements SysUserService {

    private final SysUserDao sysUserDao;

    public SysUserServiceImpl(SysUserDao sysUserDao) {
        this.sysUserDao = sysUserDao;
    }

    @Override
    public SysUser getByUsername(String username) {
        return sysUserDao.selectByUsername(username);
    }

    @Override
    public boolean saveOrUpdate(SysUser sysUser) {
        // 判断sysUser的主键是否为null或为0
        if (sysUser.getUserId() == null || sysUser.getUserId() == 0) {
            // 执行新增操作
            return sysUserDao.insert(sysUser) > 0;
        }
        // 执行修改操作
        return false;
    }
}
  1. 新建controller并创建SysUserController

    package com.starry.demo.controller;
    
    import com.starry.demo.entity.SysUser;
    import com.starry.demo.service.SysUserService;
    import org.springframework.web.bind.annotation.*;
    
    @RestController
    @RequestMapping("/sys/user")
    public class SysUserController {
        
        private final SysUserService sysUserService;
    
        public SysUserController(SysUserService sysUserService) {
            this.sysUserService = sysUserService;
        }
        
        @GetMapping
        public SysUser getByUsername(String username) {
            return sysUserService.getByUsername(username);
        }
        
        @PostMapping
        public boolean add(@RequestBody SysUser sysUser) {
            return sysUserService.saveOrUpdate(sysUser);
        }
        
    }
    

标签:username,SpringBoot,demo,整合,starry,MyBatis,import,com,public
From: https://www.cnblogs.com/Chen-Gong-rong/p/17124335.html

相关文章

  • Mybatis学习记录
    尚硅谷:https://www.bilibili.com/video/BV1Ya411S7aT?share_source=copy_webMybatsi简介Mybatis历史前身iBatis。iBatis是一个基于Java的持久层框架。iBatis提供的持......
  • MyBatis-Plus通用Iservice 方法详解
    publicinterfaceIService<T>{/***默认批次提交数量*/intDEFAULT_BATCH_SIZE=1000;/***插入一条记录(选择字段,策略插入)*......
  • SpringBoot注册Servlet、Filter和Listener的方式和原理
    1实战在SpringBoot项目中,如果使用内嵌Web服务器,可以很方便地注册Servlet、Filter和Listener等组件。总的来说,包括以下方式:创建实现ServletContextInitializer接口的b......
  • SpringBoot---起步依赖starter
    1、简化spring应用的初始搭建和开发过程。springboot程序优点:自动配置、起步依赖(简化依赖配置)、辅助功能(内置服务器...)<?xmlversion="1.0"encoding="UTF-8"?><pro......
  • SpringBoot-----quickstart
    一、最简SpringBoot程序所包含的基础文件:pom.xml和Application类。spring官网同样可以快速构建springboot工程。 二、SpringBoot项目快速启动1、在lifecycle中双击pac......
  • SpringBoot文件上传丢失Bug记录
    SpringBoot文件上传丢失Bug记录报错如下:java.io.FileNotFoundException:C:\Users\zbz12\AppData\Local\Temp\tomcat.708075972435741143.8080\work\Tomcat\localhost\c......
  • springboot在test的时候,new的类报空指针
    ok@ComponentpublicclassFifthGithubCrawler{@AutowiredprivateKBComponentVersionRepositoryversionRepository;/***导出所有数据到json......
  • SpringBoot 参数及性能优化
    SpringBoot性能优化 组件自动扫描带来的问题默认情况下,我们会使用@SpringBootApplication注解来自动获取应用的配置信息,但这样也会给应用带来一些副作用。使用这个注解后......
  • CentOS中使用Dockerfile部署带websocket的SpringBoot的jar包
    场景CentOS7中使用Dockerfile部署后台jar包在上面使用Dockerfile定制的镜像部署了一个普通的jar包, 如果是jar包里面包含websocket的使用,流程也是一样。websocket所使用的......
  • Java:SpringBoot整合Knife4j(Swagger)提供接口文档
    spring-boot版本2.7.71、引入Maven坐标pom.xml<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId>......