基于SpringBoot的SSM整合总结

一.根据需求创建数据库表

1.数据库表的字段名必须有"_"下划线,因为mybatis逆向工程在生成的时候有下划线的会自动转换为大写

   user_name ---> userName 

   username--->username

二.创建一个新的SpringBoot项目

   2.1选择springboot版本以及所需要的依赖,比如Spring Web

       创建时需要网络,若没有网络可能页面加载不出来

三.在pom.xml文件中导入所需依赖

   在添加依赖时,我们可以指定版本号,也可以不指定,因为我们的项目继承了springboot的项目,我们项目的父项目的父项目中规定了版本号,一般不指定,使用默认的版本号可以放置不兼容问题

   1.MyBatis 整合 SpringBoot 的起步依赖

<dependency>
 <groupId>org.mybatis.spring.boot</groupId>
 <artifactId>mybatis-spring-boot-starter</artifactId>
 <version>2.0.0</version>
</dependency>

  2.MySQL 的驱动依赖

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

  3.引入 Druid 数据源依赖:https://mvnrepository.com/artifact/com.alibaba/druid 

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.9</version>
</dependency>

4.web起步依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

5.模板页面起步依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

6.jdbc起步依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

四、配置springboot的核心配置文件,application.properties中配置数据源

#配置内嵌 Tomcat 端口号
server.port=8080

#配置项目上下文根
server.servlet.context-path=/

#配置数据库的连接信息

当前项目的配置文件

#将springBoot默认的数据源用alibaba的Druid代替
#spring.druiddatasource.type=com.alibaba.druid.pool.DruidDataSource
#spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#配置alibab的Druid数据源参数
spring.druiddatasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.druiddatasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.druiddatasource.username=root
spring.druiddatasource.password=123456
spring.druiddatasource.initialSize=5
spring.druiddatasource.minIdle=5
spring.druiddatasource.maxActive=20
spring.druiddatasource.maxWait=60000
spring.druiddatasource.timeBetweenEvictionRunsMillis=60000
spring.druiddatasource.minEvictableIdleTimeMillis=300000
spring.druiddatasource.validationQuery=SELECT 1 FROM DUAL
spring.druiddatasource.testWhileIdle=true
spring.druiddatasource.testOnBorrow=false
spring.druiddatasource.testOnReturn=false
spring.druiddatasource.poolPreparedStatements=true

#默认的数据源
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
#spring.datasource.username=root
#spring.datasource.password=123456

#配置MyBatis核心配置文件的位置
#mybatis.config-location=classpath:config/mybatis-config.xml

#配置SQL映射文件的位置
#在 application.properties 配置文件中指定映射文件的位置,这个配置只有接口和映射文件不在同一个包下的情况,才需要指定
#mybatis.mapper-locations=classpath:mapper/*.xml
    注意这里的驱动类有变化,高版本的mysql驱动需要加上时区
    若我们需要使用自定义的数据源则需要在配置文件中配置:
 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

1.使用默认的数据源

使用默认的数据源不需要配置类,只需要在springboot核心配置文件中配置数据库连接信息就可以了

2.使用自定义数据源

替换原来的,替换后需要配置数据源

我们可以创建一个数据源配置类

注解:1.@Configuration

            指定当前类是一个配置类,springBoot在加载时会将配置类加载进去

             若使用这个注解则在主类中可以不用再次导入配置文件

若是配置文件

          2.@ConfigurationProperties(prefix = "spring.druiddatasource")

             绑定当前配置类和属性文件,springBoot默认会加载application.properties文件,

            也可以使用@PropertySource("classpath:application.properties")绑定配置文件

          3.@Bean

             写在方法上当前方法的返回值作为一个Bean spring会自动管理这个Bean

3.配置MyBatis核心配置文件的位置

   MyBatis的核心配置文件:mybatis-config.xml

    1.可以在resources文件夹下建一个config文件夹

这样做就需要在SpringBoot核心配置文件中配置mybatis核心配置文件路径

   2.还可以创建一个配置类

 

      1.@Configuration:同上

      2.@MapperScan(""):下面再数据访问接口文件中解释

      3.@Bean:同上

mybatis的前身是 ibatis ,最后方法返回的是一个实现了ConfigurationCustomizer接口的实现类,这个类中有一个方法,方法中有一个参数,这个参数对象就是mybatis的核心配置对象,

五、开发代码

  1.创建javaBean

       GoodBean.java 与数据库对应的java实体类

       ResBean.java 返回结果信息

   2.创建数据访问接口和SQL映射文件

       GoodsMapper.java 数据访问接口文件

      1.@Mapper 的作用mybatis自动扫描数据持久层的映射文件及DAO接口的关系,也就是加载mapper映射文件,因为SQL映射文件中<insert>,<select>等标签元素的id值是 GoodsMapper接口中的方法名,所以要使用@Mapper注解将接口文件加载进去

       注意:默认情况下 ,mybatis的xml映射文件不会编译到target的class目录下,所以我们需要在pom.xml文件中配置resources以指定文件目录,让springboot把我们的SQL映射文件也包含进去

          resources配置在<build>标签里面

 2.也可以在主类上使用注解

         @MapperScan("com.wangxing.springboot.mapper")

@MapperScan(basePackages ="")
这是MyBatis提供的注解,扫描数据持久层的mapper映射配置文件,DAO接口上就不用加@Mapper了
basePackages通常指定到数据持久层就可以了

@MapperScan("com.wangxing.springboot.mapper")这个注解也可以加到mybatisConfig.java  上因为这个配置类最后也会被加载到主类中,所以和写在主类上效果一样

3.当接口文件和映射文件不在同一个包中时

   因为 SpringBoot 不能自动编译接口映射的 xml 文件,还需要手动在 pom 文件中指定,
所以有的公司直接将映射文件直接放到 resources 目录下
   1.在resources 目录下新建目录 mapper 存放映射文件

这里由于需要测试前一种方式所以将mapper下的SQl映射注释了,测试这个的时候去掉文件后的 -- 就可以了

在这种情况下,我们需要在springBoot的配置文件application.properties配置文件中指定映射文件的位置,这个配置只有接口与映射文件

不在同一个包的情况下才需要指定

       GoodsMapper.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">

 有时这个dtd结尾的连接会报错,这个是由于网络原因,无法下载这个文件导致的,我们可以将这个约束文件下载下载来配置成本地的就可以了

3.创建Druid数据源配置类,创建MyBatis配置类

         DruidConfig.java

         MyBatisConfig.java

   4.在SpringBoot的核心配置文件[application.properties]中配置数据源参数

         application.properties

#将springBoot默认的数据源用alibaba的Druid代替
#spring.druiddatasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#配置alibab的Druid数据源参数
spring.druiddatasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.druiddatasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.druiddatasource.username=root
spring.druiddatasource.password=123456
spring.druiddatasource.initialSize=5
spring.druiddatasource.minIdle=5
spring.druiddatasource.maxActive=20
spring.druiddatasource.maxWait=60000
spring.druiddatasource.timeBetweenEvictionRunsMillis=60000
spring.druiddatasource.minEvictableIdleTimeMillis=300000
spring.druiddatasource.validationQuery=SELECT 1 FROM DUAL
spring.druiddatasource.testWhileIdle=true
spring.druiddatasource.testOnBorrow=false
spring.druiddatasource.testOnReturn=false
spring.druiddatasource.poolPreparedStateme
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值