手把手创建第一个springboot并使用mybatis对mysql进行数据操作

1. 创建第一个spring boot项目

注:本人菜鸟一枚,接触springboot不到一周,搜集过许多资料,发现有些并不完善,在此记录自己的理解,并进行个人总结,以及帮助广大想入坑springboot的网友,如有不对,多多包涵,欢迎讨论。

1.1 创建项目


点击next

根据情况进行设置后点击下一步
在这里插入图片描述
点击下一步

1.2 配置阿里云镜像

新建文件settings.xml

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                          https://maven.apache.org/xsd/settings-1.0.0.xsd">

      <mirrors>
        <mirror>  
            <id>alimaven</id>  
            <name>aliyun maven</name>  
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
            <mirrorOf>central</mirrorOf>          
        </mirror>  
      </mirrors>
</settings>

在这里插入图片描述
在此处选中刚刚新建的settings文件,点击应用即可

1.3 通过Maven下载依赖配置文件

在这里插入图片描述
在此点击install,下载相应依赖配置文件

1.4 创建Controller

在项目中新建Controller文件夹,在其目录下创建一个名为TestController的控制器![在这里插入图片描述](https://img-blog.csdnimg.cn/20200411230440684.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDMzMjk1Nw==,size_16,color_FFFFFF,t_70在这里插入图片描述
注意Controller文件夹与Application平级

1.5 创建第一个API

在TestContoller中输入如下代码

package com.example.demo.Controller;

import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@CrossOrigin //跨域
public class TestController {
    //hello spring测试
    @GetMapping(value = "hello")
    public String hello(){
        return "Hello SpringBoot!";
    }
}

1.6 API实现

访问localhost:8080/hello即可 (springboot默认端口为8080),也可以在resources文件夹里的application修改端口 (后面会讲到)
在这里插入图片描述

2. 使用Mybatis包对数据库进行操作

2.1 在Pom.xml里添加相应依赖

<dependency>
	<groupId>org.mybatis.spring.boot</groupId>
	<artifactId>mybatis-spring-boot-starter</artifactId>
	<version>2.0.0</version>
</dependency>
<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<scope>runtime</scope>
</dependency>

2.2 配置数据库连接文件

在application.yml里输入

spring:
  datasource:
    url: jdbc:mysql://你的数据库的ip地址:3306/你的数据库名称?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
    username: 数据库账号
    password: 数据库密码
    initialSize: 5
    minIdle: 5
    maxActive: 20
    maxWait: 60000
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    poolPreparedStatements: true
    maxPoolPreparedStatementPerConnectionSize: 20
    useGlobalDataSourceStat: true
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
mybatis:
  config-location: classpath:Mybatis/mybatis-config
  mapper-locations: classpath:Mybatis/mapper/mapper
  //实体类
  type-aliases-package: com.example.demo.MyClass.User

2.3 在resources文件夹下建立如下文件

在这里插入图片描述
在mapper.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">
//这里namespace是指你所建立的dao层接口
<mapper namespace="com.example.demo.dao.IMapper">
	//这里是数据库的查询语句,resulttype是返回类型,这里直接返回User类,id是对应dao曾的接口里相应方法
    <!--查询所有用户信息-->
    <select id="findAll" resultType="com.example.demo.MyClass.User">
        select *
        from users
    </select>
</mapper>

这里注意一下注解,个人理解是将这里的mapper文件通过反射,映射至dao层接口。

在mybatis-config里输入

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <settings>
        <setting name="useGeneratedKeys" value="true"/>
        <setting name="useColumnLabel" value="true"/>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
</configuration>

这里根据自己需求进行配置就行,网上一搜一大把(狗头)

2.4 分别在启动项同级目录下建立dao层,service层,Controller层

这里引用别人总结的一句话,觉得解释的很透彻,
出自https://blog.csdn.net/LL142857/article/details/89242816

  1. Dao层:全称Data Access Object。Dao层比较底层,负责与数据库打交道具体到对某个表、某个实体的增删改查
  2. Service层:又叫服务层或业务层,封装Dao层的操作,使一个方法对外表现为实现一种功能,例如:网购生成订单时,不仅要插入订单信息记录,还要查询商品库存是否充足,购买是否超过限制等等。
  3. Controller层:业务控制层,负责接收数据和请求,并且调用Service层实现这个业务逻辑。

Controller层像是一个服务员,他把客人(前端)点的菜(数据、请求的类型等)进行汇总什么口味、咸淡、量的多少,交给厨师长(Service层),厨师长则告诉沾板厨师(Dao 1)、汤料房(Dao 2)、配菜厨师(Dao 3)等(统称Dao层)我需要什么样的半成品,副厨们(Dao层)就负责完成厨师长(Service)交代的任务。

Controller上面已经建好,同样的方法建立dao层和service层
在这里插入图片描述
同时在IMapper里输入

package com.example.demo.dao;

import com.example.demo.MyClass.User;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
//这里是上面mapper.xml的对应方法
public interface IMapper {
    //查询所有user
    List<User> findAll();
}

在service里输入

@Autowired
    private IMapper mapper;
    @Override
    public List<User> findAll() {
        return mapper.findAll();
    }

2.5 API实现

在Controller类里面增加功能实现代码:

//获取所有users
	@Autowired
    Service sv;
	
    @GetMapping(value = "list")
    public List<User> getList(){
        return sv.findAll();
    }

进行测试
在这里插入图片描述

3. 总结

大概流程用个人的话表示就是先建立与数据库的连接,然后用dao层的IMapper对mapper文件里的数据库语句通过反射,在service层里进行调用,最后在controller层提供api进行前端调用获取数据。

在此只对数据进行了查找,对于增删改,和查是类似的,如果是刚入门的同学,可以进行思考。

后续会对前端登录通过token对api的调用进行个人记录。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值