【笔记+知识学习】Spring Boot整合Mybatis + pom.xml、.yml、.properties文件粗略解释

1. 首先配置pom.xml文件。那么什么是pom.xml?

pom.xml作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件、项目的依赖性等;

配置时,首先确定项目为SpringBoot(虽然本质是个Maven)

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-parent</artifactId>
        <version>2.1.5.RELEASE</version>
    </parent>

其次,添加Mybatis的依赖jar。

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.1</version> //版本号很容易出问题,具体哪个可以找最新
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.15</version>//版本号同样注意
        </dependency>

2. 创建application.yml。那么为什么创建.yml文件呢?

使用idea开发springboot项目,在做模块开发时,不再使用 默认的配置文件:application.properties而是删除后创建application.yml 配置文件,原因于其拥有天然的树状结构。
那么最初的.properties文件是什么呢?
1.Java中有专门用来装载配置文件的类Properties(Java.util.Properties),配置文件用来保存一些在程序中可能修改的值
2. Java配置文件常为.properties文件,格式为文本文件,文件的内容的格式是“键=值”的格式。
3. 开发中获得连接的4个参数(驱动、URL、用户名、密码)通常都存在配置文件中,方便后期维护,程序如果需要更换数据库,只需要修改配置文件即可。

总之,就是Java通过读取配置文件进行数据库、接口的处理。(因为我就用到了这两个。。。。)

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/library?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver

mybatis:
  mapper-locations: classpath:/mapping/*.xml //
  type-aliases-package: com.wch.entity
server:
  port: 8181 
  1. url、username、password 弄自己的。
  2. mapper-locations:当mybatis的xml文件和mapper接口不在相同包下时,需要用mapper-locations属性指定xml文件的路径。找到了,才能利用xml映射器来实现映射。
  3. classpath :src 路径下的文件在编译后都会放到 WEB-INF/classes 路径下。默认classpath 就是指这里。*是个通配符,代表所有的文件,**代表所有目录下。
  4. port:端口自定,爱啥啥,但你得记得前端从这个端口拿数据

3. 配置mapper.xml文件。那么这里的.xml文件又是什么?

MyBatis 的真正强大在于它的映射语句,也是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。那么映射(ORM)又是什么?

1.对象关系映射(Object Relational Mapping,简称ORM),简单的说ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。

个人理解:Mybatis得用xml实现ORM,再xml中配置SQL语句将元素映射到数据库中,实现持久化。

<?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.wch.repository.BookRepository">

    <select id="findAll" resultType="com.wch.pojo.Book">
        select id,name,author from book
    </select>
    <select id="findById" parameterType="int" resultType="com.wch.pojo.Book">
        select id,name,author from book where id=#{id}
    </select>
    <insert id="save" parameterType="com.wch.pojo.Book">
        insert into book(name,author) values(#{name},#{author})
    </insert>
    <update id="update" parameterType="com.wch.pojo.Book">
        update book set name=#{name},author=#{author} where id=#{id}
    </update>
    <delete id="deleteById" parameterType="int">
        delete from book where id=#{id}
    </delete>
</mapper>
  1. 在映射文件中通过parameterType指定输入参数的类型。
  2. 在映射文件中通过resultType指定输出结果的类型。
  3. #{}表示一个占位符号,#{}接收输入参数,类型可以是简单类型,pojo、hashmap。

4.配置Controller.java。

package com.wch.controller;

import com.wch.entity.Book;
import com.wch.repository.BookRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
public class BookHandler {
    @Autowired
    private BookRepository bookRepository;

    @GetMapping("/findAll")
    public List<Book> findAll(){
        return bookRepository.findAll();
    }

    @GetMapping("/findById/{id}")
    public Book findById(@PathVariable("id") int id) {
        return bookRepository.findById(id);

    }

    @DeleteMapping("/deleteById/{id}")
    public  void deleteById(@PathVariable("id") int id){
        bookRepository.deleteById(id);
    }

    @PostMapping("/save")
    public void save(@RequestBody Book book){
        bookRepository.save(book);
    }

    @PutMapping("/update")
    public void update(@RequestBody Book book){
        bookRepository.update(book);
    }
}

注解:

  1. @RestController:

@RestController注解相当于@ResponseBody + @Controller合在一起的作用。如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。

  1. @Autowired 注释可以在 setter 方法中被用于自动连接 bean。自动注入嘛。
  2. @Pathvariable:

当使用@RequestMapping URI template 样式映射时, 即 someUrl/{paramId}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上。

  1. @GetMapping("/findAll")/@GetMapping("/findById/{id}")/@DeleteMapping("/deleteById/{id}")/@PostMapping("/save")/@PutMapping("/update")

其中@GetMapping等于@RequestMapping(method = RequestMethod.GET),其他类推,这也是规范rest风格。那么rest是什么?

  1. REST描述的是在网络中client和server的一种交互形式;REST本身并没有创造新的技术、组件或服务,而隐藏在RESTful背后的理念就是使用Web的现有特征和能力, 更好地使用现有Web标准中的一些准则和约束。
  2. 别问后面的rest、restful接口啥意思,怎么设计了,我真不懂,这工程跟大佬学着敲的,就这种规范以后习惯用了。。。

5. 至此,整合完毕,具体根据MVC 框架的Service层的就不写了。

6. 项目文件树结构:

在这里插入图片描述在这里插入图片描述在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值