SpringBoot整合Mybatis

SpringBoot整合Mybatis

  1. MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC
    代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java
    POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。(来源百度百科)

  2. 我们为什么使用Mybatis,如果你不想天天写JDBC的连接查询方式,就用Mybatis,因为简单高效方便快捷!!!!配置超级简单!

正文

  1. 引入Mybatis,这个大家应该都会
<dependency>
     <groupId>org.mybatis.spring.boot</groupId>
     <artifactId>mybatis-spring-boot-starter</artifactId>
     <version>2.2.0</version>
</dependency>
  1. JDBC和MySQL
<dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <scope>runtime</scope>
</dependency>

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
  1. 搭建数据库
    4.

在这里插入图片描述
在这里插入图片描述
以上所有事情的准备好了,多说一句就是在导入依赖包的时候我们一定要有相关的数据库配置才可以正常运行不然就会报错,数据库操作对我们程序员很重要
4. 然后就是程序目录
5.

这里我们先来理清一下思路;

请添加图片描述
不要在意细节,这个字差不多了!!!

我们在
在这里插入图片描述
配置了这个文件

所有事情准备好了之后
那就开始吧

  1. 配置文件
server:
  port: 8081

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/springblog?useUnicode=true & characterEncoding=utf-8 &
      useSSL=true & serverTimezone=Asia/Shanghai
    username: root
    password: 196811

mybatis:
  mapper-locations: classpath:/mapper/*.xml
  type-aliases-package: com.nx.study.springstudy.bean

mapper-locations: classpath:/mapper/*.xml
type-aliases-package: com.nx.study.springstudy.bean
这个是一个扫描寻找的路径大家仔细看看包的位置

  1. 编写实体类
package com.nx.study.springstudy.bean;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

public class UserPostForm {

    private int id;

    @NotEmpty(message = "姓名不能为空!")
    private String username;

    @NotEmpty(message = "密码不能为空!")
    @Size(min = 3, max = 10, message = "长度在3-10之间")
    private String userpassword;

    @NotEmpty(message = "不能为空")
    @Email(message = "邮箱格式错误!")
    private String useremail;


    public String getUserEmail() {
        return useremail;
    }

    public void setUserEmail(String userEmail) {
        this.useremail = userEmail;
    }
    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getUserpassword() {
        return userpassword;
    }

    public void setUserpassword(String userpassword) {
        this.userpassword = userpassword;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return "UserForm{" +
                "username='" + username + '\'' +
                ", userpassword='" + userpassword + '\'' +
                ", useremail='" + useremail + '\'' +
                '}';
    }
}

3.编写dao层

package com.nx.study.springstudy.dao;

import com.nx.study.springstudy.bean.UserPostForm;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

@Repository
public interface UserDao {
    public UserPostForm getUserPostFormByID(@Param("id") int id);
}

注意@Repository, @Param这两个注解的作用

4.函数主入口中扫描

package com.nx.study.springstudy;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@MapperScan("com.nx.study.springstudy.dao")
@SpringBootApplication
public class SpringStudyApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringStudyApplication.class, args);
    }

}

5.编写Mapper(UserMapper.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.nx.study.springstudy.dao.UserDao">
    <select id="getUserPostFormByID" resultType="UserPostForm">
        select * from `user` where id=#{id}
    </select>
</mapper>

注意:

namespace, id, resultType这几个一定要对应起来

  1. 编写Service
import com.nx.study.springstudy.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service("UserService")
public class UserService {

    @Autowired
    private UserDao userDao;

    public UserPostForm queryUser(int id){
        return userDao.getUserPostFormByID(id);
    }

}
  1. 编写Controller
import com.nx.study.springstudy.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class Test {

    @Autowired
    private UserService userService;

    @GetMapping("/getUser")
    public UserPostForm getUser(@RequestParam("id") int id){
        return userService.queryUser(id);
    }
}

  1. 运行
localhost:8081/getUser?id=1

我们在回顾运行整个流程
请添加图片描述
其他查询方法大同小异,详情查看官网或者其他大佬!!!

  • 1
    点赞
  • 1
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页

打赏作者

是南巷的花猫啊

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值