【电商支付项目(二)】创建 SpringBoot 应用 & Mybatis 注解、XML使用 & Mybatis 三剑客

版本:
java:1.8
Maven:3.6+
MySQL:5.7
IDEA:2019(Ultimate)
SpringBoot:2.1.7(严格 springboot 版本不同,代码不同)

在这里插入图片描述

1. 创建SpringBoot应用:

方式一:IDEA
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
配置 Maven
在这里插入图片描述
在pom中修改springboot版本
在这里插入图片描述
改后重新导入maven依赖
在这里插入图片描述
测试运行
在这里插入图片描述
方式二:Spring官网
方式三:Maven

1.2 结构要优雅,执行要高效

在这里插入图片描述

2. Mybatis 三剑客

Mybatis是一款数据库持久层框架

为什么选用Mybatis而不用Jpa

Jpa是技术趋势,Mybatis是国内现状(选框架注意大环境)

2.1 XML vs 注解

1、官网导入Mybatis依赖
在这里插入图片描述
2、引入MySQL依赖
因为Mybatis只是一个持久层框架,要连接数据库必须要有对应的驱动

<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
</dependency>

不需要加版本,因为spring-boot-starter-parent已经定义好了版本(此处为springboot的优点之一,省配置)但是要注意MySQL软件的版本(5.7)
在这里插入图片描述

确保导入:按住 ctrl 点击 artifactid 中的 id -> 若能进入则导入成功

3、配置数据库
在这里插入图片描述
重命名 -> 更改格式
在这里插入图片描述
在这里插入图片描述
下划线 -> 驼峰命名:
在这里插入图片描述

2.1.1 Mybatis 注解使用(了解)

1、pojo类
在这里插入图片描述
在这里插入图片描述

package com.imooc.mall.pojo;

import org.springframework.web.servlet.view.InternalResourceViewResolver;

import java.util.Date;

/**
 * @description:
 * po(persistent object):持久层的对象 数据库表映射过来的对象
 * pojo(plian ordinary java object):只有属性,get、set方法的普通java对象 范围包含po
 * @author: Dixinkk
 * @create: 2022-03-13 15:26
 */
public class Category {
    private Integer id;
    private Integer parentId;
    private String name;
    private Integer status;
    private Integer sortOrder;
    private Date createTime;
    private Date updateTime;

    public Integer getId() {
        return id;
    }

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

    public Integer getParentId() {
        return parentId;
    }

    public void setParentId(Integer parentId) {
        this.parentId = parentId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getSortOrder() {
        return sortOrder;
    }

    public void setSortOrder(Integer sortOrder) {
        this.sortOrder = sortOrder;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    @Override
    public String toString() {
        return "Category{" +
                "id=" + id +
                ", parentId=" + parentId +
                ", name='" + name + '\'' +
                ", status=" + status +
                ", sortOrder=" + sortOrder +
                ", createTime=" + createTime +
                ", updateTime=" + updateTime +
                '}';
    }
}

2、dao
在这里插入图片描述
测试:
在这里插入图片描述

IDEA 快捷输入:categoryMapper.findById(100001).var

@Test
void contextLoads() {
	Category category = categoryMapper.findById(100001); //-> categoryMapper.findById(100001).var
	System.out.println(category.toString());
}

测试结果
在这里插入图片描述

小技巧①:@MapperScan 代替 @Mapper

主类下:@MapperScan()
按住 ctrl + p可以查看提示
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

小技巧②:IDEA配置(节省时间)

1、Maven项目自动导入
在这里插入图片描述
若自动导入不生效则手动导入:
在这里插入图片描述
2、自动导包
在这里插入图片描述
注:存在多个包时无法自动导入,需要手动选择

3、lombok
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
加注解 -> @Data
在这里插入图片描述
4、修改日志输出格式
在这里插入图片描述

2.1.2 Mybatis XML使用(熟练掌握)

在这里插入图片描述
新建Mapper文件夹 -> 存放xml
在这里插入图片描述
在这里插入图片描述

此处resultType的Category的位置写错了,应改为:com.imooc.mall.pojo.Category
否则报错:找不到 Category类

在这里插入图片描述

参考文档

在这里插入图片描述

错误①:Invalid bound statement (not found)

在这里插入图片描述
–> 未告诉程序 Mapper 文件夹位置

在这里插入图片描述

规范①:替换 select *

在这里插入图片描述

规范②:专门的测试类

ctrl + shift + t
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

小技巧③:用继承减少注解

在这里插入图片描述

2.2 Mybatis-generator

代码自动生成

开发生成器:连接数据库 -> 获取表结构 -> 生成文件
1、官方文档
在这里插入图片描述
在这里插入图片描述
Maven pom.xml 配置

<plugin>
	<groupId>org.mybatis.generator</groupId>
	<artifactId>mybatis-generator-maven-plugin</artifactId>
	<version>1.3.7</version>
</plugin>

注意版本:不同版本操作不同
2、终端(IDEA terminal 即可 - IDEA提供的快捷终端)输入mvn mybatis-generator:generate
在这里插入图片描述
报错
在这里插入图片描述
2、resources 下新建 generatorConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
    <classPathEntry location="D:\BC\Java exe\mysql-connector-java-5.1.6.jar" />

    <context id="DB2Tables" targetRuntime="MyBatis3">
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://127.0.0.1:3306/mall?characterEncoding=utf-8"
                        userId="root"
                        password="123456">
        </jdbcConnection>

        <javaTypeResolver >
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <javaModelGenerator targetPackage="com.imooc.mall.pojo" targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <sqlMapGenerator targetPackage="mappers"  targetProject="src/main/resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

        <javaClientGenerator type="XMLMAPPER" targetPackage="com.imooc.mall.dao"  targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

        <table tableName="mall_order" />

    </context>
</generatorConfiguration>

terminal 运行mvn mybatis-generator:generate
自动生成:
在这里插入图片描述
发现名字多了Mall
改进:

<table tableName="mall_order" domainObjectName="Order"/>

再改进 -> 生成时自动覆盖
在这里插入图片描述
在这里插入图片描述

小技巧④:去掉Mybatis-generator自动生成的注释

注意:commentGenerator 顺序
在这里插入图片描述

小技巧⑤:不再追加xml内容

在这里插入图片描述

2.3 Mybatis-plugin

快速查找 dao中函数 -> mapper中的SQL
在这里插入图片描述
在这里插入图片描述

2.4 Mybatis-PageHelper

https://github.com/abel533/MyBatis-Spring-Boot
分页

<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter -->
<dependency>
   <groupId>com.github.pagehelper</groupId>
   <artifactId>pagehelper-spring-boot-starter</artifactId>
   <version>1.2.13</version>
</dependency>

代码中只需加一句话

        PageHelper.startPage(pageNum, pageSize);

在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心海非海_

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值