美文网首页Spring Boot 核心技术
SpringBoot学习总结二之SpringBoot整合myBa

SpringBoot学习总结二之SpringBoot整合myBa

作者: 一只流浪的小码农 | 来源:发表于2019-03-12 10:47 被阅读0次

    前言

    通过上一章的学习,我们已经对SpringBoot有简单的入门,接下来我们深入学习一下SpringBoot,我们知道任何一个网站的数据大多数都是动态的,也就是说数据是从数据库提取出来的,而非静态数据,那么我们接下来就是要连接数据,现在我们经常使用的数据库有MySQL数据库,Oracle数据库,Redis(非关系型数据库),Mongodb(非关系型数据库)等等。

    本章目标

    1.学会使用SpringBoot和MyBatis通过注解的方式操作数据库

    2.学会使用SpringBoot和MyBatis通过XML配置文件的方式操作数据库

    项目搭建

    1.打开idea,Create New Project

    2.选择Spring Initializer,然后点击下一步

    3.填写组织,坐标等信息,然后点击Next

    4.选择依赖Web,然后勾选Web,点击Next,然后一直点击Next,直到项目结构建立完成

    5.项目结构搭好之后,我们新建一些包有控制层,服务层,数据访问层,实体层,完整结构如下

    6.由于我们要使用MyBatis操作数据库,所以需要添加一些依赖,完整的pom.xml文件如下

    <?xml version="1.0" encoding="UTF-8"?>

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

            xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

        <modelVersion>4.0.0</modelVersion>

        <parent>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-parent</artifactId>

            <version>2.1.3.RELEASE</version>

            <relativePath/> <!-- lookup parent from repository -->

        </parent>

        <groupId>com.demo02</groupId>

        <artifactId>demo_02</artifactId>

        <version>0.0.1-SNAPSHOT</version>

        <name>demo_02</name>

        <description>Demo project for Spring Boot</description>

        <properties>

            <java.version>1.8</java.version>

        </properties>

        <dependencies>

            <dependency>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-starter-web</artifactId>

            </dependency>

            <dependency>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-starter-test</artifactId>

                <scope>test</scope>

            </dependency>

            <!--mybatis-spring适配器-->

            <dependency>

                <groupId>org.mybatis.spring.boot</groupId>

                <artifactId>mybatis-spring-boot-starter</artifactId>

                <version>1.1.1</version>

            </dependency>

            <!--mysql驱动包-->

            <dependency>

                <groupId>mysql</groupId>

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

                <version>5.1.30</version>

            </dependency>

        </dependencies>

        <build>

            <plugins>

                <plugin>

                    <groupId>org.springframework.boot</groupId>

                    <artifactId>spring-boot-maven-plugin</artifactId>

                </plugin>

            </plugins>

        </build>

    </project>

    7.接下来我们需要新建数据库以及生成实体,数据的建立我就不重复多说了,说一下使用idea快速生成实体(Product),数据库的sql脚本如下

    #创建商品信息表create  tableproduct(    pid int primary key not nullauto_increment COMMENT"商品编号",    pname varchar(50) COMMENT"商品名称",    pprice DECIMAL(10,2) COMMENT"商品价格",    ptime varchar(50) COMMENT"入库时间",    pcount intCOMMENT"库存",    pstatus int COMMENT"商品状态" #0代表下架,1代表上架)COMMENT"商品信息表"insert into product(pname,pprice,ptime,pcount,pstatus)VALUES("苹果",11,"2019-10-1",11,1)

    SELECT * from product

    8.Database表示要连接的数据库名称,User表示用户名称,Password表示密码,然后点击Ok,然后选择你要生成实体的目录,生成完成之后基本结构就搭建好了

    9.Product实体代码如下

    packagecom.ssm.entity;/** 商品实体类* */public classProduct {  private long pid;//编号  private String pname;//名称  private double pprice;//价格  private String ptime;//入库时间  private long pcount;//数量  private long pstatus;//状态  //无参构造方法  publicProduct() {}  //带参构造方法  public Product(long pid, String pname, double pprice, String ptime, long pcount, longpstatus) {    this.pid =pid;    this.pname =pname;    this.pprice =pprice;    this.ptime =ptime;    this.pcount =pcount;    this.pstatus =pstatus;  }  public longgetPid() {    returnpid;  }  public void setPid(longpid) {    this.pid =pid;  }  publicString getPname() {    returnpname;  }  public voidsetPname(String pname) {    this.pname =pname;  }  public doublegetPprice() {    returnpprice;  }  public void setPprice(doublepprice) {    this.pprice =pprice;  }  publicString getPtime() {    returnptime;  }  public voidsetPtime(String ptime) {    this.ptime =ptime;  }  public longgetPcount() {    returnpcount;  }  public void setPcount(longpcount) {    this.pcount =pcount;  }  public longgetPstatus() {    returnpstatus;  }  public void setPstatus(longpstatus) {    this.pstatus =pstatus;  }  @Override  publicString toString() {    return "Product{" +            "pid=" + pid +            ", pname='" + pname + '\'' +            ", pprice=" + pprice +            ", ptime='" + ptime + '\'' +            ", pcount=" + pcount +            ", pstatus=" + pstatus +            '}';

      }

    }

    SpringBoot整合myBais方式一(注解方式)

    1.接下来,我们就需要配置一下连接数据库的配置文件,在application.xml中进行配置,applicaion.xml文件如下

    #连接数据库的驱动

    spring.datasource.driver-class-name=com.mysql.jdbc.Driver

    #连接数据库的url

    spring.datasource.url=jdbc:mysql://localhost:3306/ssm?characterEncoding=utf-8

    #用户名

    spring.datasource.username=root

    #密码

    spring.datasource.password=123456

    2.现在我们就可以操作数据库了,编写ProductDao,ProductService,ProductImple,ProductController以及配置SpringBoot主程序,由于我们新建的包不是和SpringBoot主程序同级目录,所以无法扫描到(项目启动时,只有@SpringBootApplication 所在的包被扫描,启动类是MainApplication.java, 也就是MainApplication.java类所在的这个包,而其他的controller和service以及mapper在其他的包里,所以并没有被扫描)所以我们需要配置一下

    3.ProductDao文件如下

    packagecom.ssm.dao;importcom.ssm.entity.Product;importorg.apache.ibatis.annotations.Select;importjava.util.List;public interfaceProductDao {    @Select("select * from product")    List findAllProduct();

    }

    4.ProductService文件如下

    packagecom.ssm.service;importcom.ssm.entity.Product;importjava.util.List;public interfaceProductService {    List findAllProduct();

    }

    5.ProductImple文件如下

    packagecom.ssm.service.imple;importcom.ssm.dao.ProductDao;importcom.ssm.entity.Product;importcom.ssm.service.ProductService;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Service;importjava.util.List;@Servicepublic class ProductImple implementsProductService {    @Autowired    privateProductDao productDao;    @Override    public ListfindAllProduct() {        return productDao.findAllProduct();

        }

    }

    6.ProductController文件如下

    packagecom.ssm.controller;importcom.ssm.entity.Product;importcom.ssm.service.ProductService;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RestController;importjava.util.List;@RestControllerpublic classProductController {    @Autowired    privateProductService productService;    //查询全部的商品信息    @GetMapping("/product")    public ListfindAllProduct(){        return  productService.findAllProduct();

        }

    }

    7.SpringBoot主程序文件如下

    packagecom.demo02.demo_02;importorg.mybatis.spring.annotation.MapperScan;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.context.annotation.ComponentScan;@SpringBootApplication@ComponentScan(basePackages = {"com.ssm.controller","com.ssm.service"})@MapperScan(basePackages = {"com.ssm.dao"})public classDemo02Application {    public static voidmain(String[] args) {        SpringApplication.run(Demo02Application.class, args);

        }

    }

    8.点击运行,在地址栏输入localhost:8080/product,如果出现如下结果,那么恭喜你,第一种方式你已经学会了

    SpringBoot整合MyBatis方式二(XML配置文件)

    1.现在我们通过第二种方式操作数据库,我们先将application.xml中的配置文件全部注释,然后新建applicaion.yml,为什么要使用这种格式呢?因为这种方式方便简洁,官方也推荐我们使用这种类型,这是一些的相关格式.

    server:

      port: 8801

    eureka:

      client:

        registerWithEureka: false

        fetchRegistry: false

        serviceUrl:

          defaultZone: http://localhost:8801/eureka/

    2.applicaion.yml配置如下

    spring:

      datasource:

        driver-class-name: com.mysql.jdbc.Driver

        url:  jdbc:mysql://localhost:3306/ssm?characterEncoding=utf-8

        username: root

        password: 123456

    mybatis:

      typeAliasesPackage: com.ssm.entity

      mapperLocations:  classpath:mapper/*Mapper.xml

    3.我们要通过xml的格式操作数据库也就是我们需要写Mapper.xml文件,在src/main/resources新建Mapper文件夹,然后新建ProductMapper.xml

    4.ProductMapper.xml文件如下

                    select  * from product

        </select>

    </mapper>

    5.ProductDao文件如下

    packagecom.ssm.dao;importcom.ssm.entity.Product;importorg.apache.ibatis.annotations.Select;importjava.util.List;public interfaceProductDao {//    @Select("select * from product")    List findAllProduct();

    }

    6.ProductService文件如下

    packagecom.ssm.service;importcom.ssm.entity.Product;importjava.util.List;public interfaceProductService {    List findAllProduct();

    }

    7.ProductImple文件如下

    packagecom.ssm.service.imple;importcom.ssm.dao.ProductDao;importcom.ssm.entity.Product;importcom.ssm.service.ProductService;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Service;importjava.util.List;@Servicepublic class ProductImple implementsProductService {    @Autowired    privateProductDao productDao;    @Override    public ListfindAllProduct() {        return productDao.findAllProduct();

        }

    }

    8.ProductController文件如下

    packagecom.ssm.controller;importcom.ssm.entity.Product;importcom.ssm.service.ProductService;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RestController;importjava.util.List;@RestControllerpublic classProductController {    @Autowired    privateProductService productService;    //查询全部的商品信息    @GetMapping("/product")    public ListfindAllProduct(){        return  productService.findAllProduct();

        }

    }

    9.SpringBoot主程序文件如下

    packagecom.demo02.demo_02;importorg.mybatis.spring.annotation.MapperScan;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.context.annotation.ComponentScan;@SpringBootApplication@ComponentScan(basePackages = {"com.ssm.controller","com.ssm.service"})@MapperScan(basePackages = {"com.ssm.dao"})public classDemo02Application {    public static voidmain(String[] args) {        SpringApplication.run(Demo02Application.class, args);

        }

    }

    10.运行,结果和之前的一样

    总结

    通过对本章的学习,我们已经可以操作数据库了,相对SSM框架来说,SpringBoot的确简化了我们许多操作,当你需要哪些依赖时,我们直接选择就可以,它也的确比较实在。也希望大家可以和我多多交流。

    相关文章

      网友评论

        本文标题:SpringBoot学习总结二之SpringBoot整合myBa

        本文链接:https://www.haomeiwen.com/subject/mlbwpqtx.html