【SpringBoot学习系列】二、SpringBoot整合Mybatis-plus实践


前言

上一篇文章中我们认识了SpringBoot,并学会了创建SpringBoot项目,今天这篇文章讲述一下SpringBoot怎么整合Mybatis-plus,进行数据库的相关操作。
传送门:https://gitee.com/huoqstudy/xiliu-admin.git


一、先初始化一个工程

参照上一篇文章初始化一个SpringBoot工程

二、添加依赖

代码如下(示例):

<!--mybatis-plus-->
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-boot-starter</artifactId>
			<version>3.3.0</version>
		</dependency>
		<!--mysql-->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-generator</artifactId>
			<version>3.3.0</version>
		</dependency>
		<!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
		<dependency>
			<groupId>org.apache.velocity</groupId>
			<artifactId>velocity-engine-core</artifactId>
			<version>2.1</version>
		</dependency>

三、配置application.properties文件

代码如下(示例):

#服务端口
server.port=8081
#服务名
spring.application.name=xiliu-study-ucenter
#环境设置:dev、test、prod
spring.profiles.active=dev
#mysql数据库连接
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/xiliu_study_ucenter?characterEncoding=UTF-8&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root
#mybatis日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#逻辑删除
mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0
#全局日志级别
logging.level.root=info

四、创建代码生成器类并执行

在test目录创建如下代码,代码如下(示例):

package com.java.xiliu.study;

import com.baomidou.mybatisplus.annotation.DbType;

import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class XiliuStudyUcenterApplicationTests {

	@Test
	void contextLoads() {
		// 1、创建代码生成器
		AutoGenerator mpg = new AutoGenerator();

		// 2、全局配置
		GlobalConfig gc = new GlobalConfig();
		String projectPath = System.getProperty("user.dir");
		//代码生成路径
		gc.setOutputDir(projectPath + "/src/main/java");
		gc.setAuthor("Helen");
		gc.setOpen(false); //生成后是否打开资源管理器
		gc.setFileOverride(false); //重新生成时文件是否覆盖
		gc.setServiceName("%sService"); //去掉Service接口的首字母I
		//gc.setIdType(IdType.ID_WORKER); //主键策略
		gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型
		gc.setSwagger2(true);//开启Swagger2模式
		mpg.setGlobalConfig(gc);

		// 3、数据源配置
		DataSourceConfig dsc = new DataSourceConfig();
		dsc.setUrl("jdbc:mysql://localhost:3306/xiliu_study_ucenter");
		dsc.setDriverName("com.mysql.jdbc.Driver");
		dsc.setUsername("root");
		dsc.setPassword("root");                                                                                           dsc.setDbType(DbType.MYSQL);
		mpg.setDataSource(dsc);

		// 4、包配置
		PackageConfig pc = new PackageConfig();
		pc.setModuleName("ucenter"); //模块名
		pc.setParent("com.java.xiliu.study");
		pc.setController("controller");
		pc.setEntity("entity");
		pc.setService("service");
		pc.setMapper("mapper");
		mpg.setPackageInfo(pc);

		// 5、策略配置
		StrategyConfig strategy = new StrategyConfig();
		strategy.setInclude("ucenter_member", "ucenter_oper_log");
		strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
		strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体时去掉表前缀
		strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
		strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作
		strategy.setRestControllerStyle(true); //restful api风格控制器
		strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符
		mpg.setStrategy(strategy);

		// 6、执行
		mpg.execute();

	}

}

编写好后,执行该方法,生成代码。

五、编写Mybatis配置类

新建一个cofig目录,编写Mybatis配置类,代码如下(示例):

@Configuration
@MapperScan("com.java.xiliu.study.ucenter.mapper")
@EnableTransactionManagement
public class MybatisPlusConfig {
    
}

六、编写controller

在MemberController中添加如下方法,测试查询全部数据,代码如下(示例):

    @Autowired
    private MemberService memberService;

    @GetMapping
    public List<Member> list(){
        return memberService.list(null);
    }

七、启动项目

运行启动类,启动项目,启动成功后,访问刚编写的get方法,http://localhost:8081/ucenter/member,可看到页面输出了数据,说明整合成功。
在这里插入图片描述

八、配置Druid连接池

在开发项目中如果数据库选型为mysql,很大概率下连接池会使用druid。

1. 先添加依赖

       <!-- druid连接池 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid-spring-boot-starter</artifactId>
			<version>1.1.21</version>
		</dependency>

2. 修改配置文件

由于初始化的项目默认生成的配置文件是properties后缀的文件,我们把文件后缀改为yml,这样编写druid配置更加的友好。

#服务端口
server:
  port: 8081

#服务名
spring:
  application:
    name: xiliu-study-ucenter

  #环境设置:dev、test、prod
  profiles:
    active: dev

  # druid数据源配置
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    # 配置MySQL的驱动程序类
    driver-class-name: com.mysql.jdbc.Driver
    # 数据库连接地址(MySql为例)
    url: jdbc:mysql://localhost:3306/xiliu_study_ucenter?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
    # 数据库对应的用户名
    username: root
    # 数据库对应的密码
    password: root
    druid:
      # 配置监控统计拦截的filters,stat是sql监控,wall是防火墙(如果不添加则监控无效),添加log4j需要引入jar包
      filters: stat,wall,config
      # 连接池最大活跃连接数
      max-active: 100
      # 连接池初始化连接数量
      initial-size: 1
      # 配置获取连接等待超时的时间
      max-wait: 60000
      # 连接池最小空闲数
      min-idle: 1
      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      timeBetweenEvictionRunsMillis: 60000
      # 配置一个连接在池中最小生存的时间,单位是毫秒
      minEvictableIdleTimeMillis: 300000
      # 指定空闲连接检查、废弃连接清理、空闲连接池大小调整之间的操作时间间隔
      time-between-eviction-runs-millis: 60000
      # 指定一个空闲连接最少空闲多久后可被清除
      min-evictable-idle-time-millis: 300000
      # 连接是否有效的查询语句
      validation-query: select 'x'
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      #打开 PSCache,并且指定每个连接上 PSCache 的大小
      pool-prepared-statements: true
      max-open-prepared-statements: 50
      max-pool-prepared-statement-per-connection-size: 20
      # 配置 DruidStatFilter
      web-stat-filter:
        enabled: true #\u662F\u5426\u542F\u7528StatFilter\u9ED8\u8BA4\u503Ctrue
        # 排除一些不必要的url,比如.js,/jslib/等
        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
        # 过滤规则
        url-pattern: /*
      # 配置 DruidStatViewServlet
      stat-view-servlet:
        #手动重置监控数据
        enabled: true
        # IP白名单,没有配置或者为空,则允许所有访问
        allow: 127.0.0.1
        #IP黑名单,若白名单也存在,则优先使用
        deny:
        # 配置druid登录用户名、密码
        login-username: admin
        login-password: admin
        # HTML 中 Reset All 按钮
        reset-enable: true


#mybatis日志
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
  #逻辑删除
    db-config:
      logic-delete-value: 1
      logic-not-delete-value: 0


#全局日志级别
logging:
  level:
    root: info


3. 修改Mybatis配置类

添加数据库连接池的bean,这里结合Mybatis一起使用,直接写在Mybatis配置类里面。

   /**
     * druid注入
     * @return dataSource
     */
    @Bean(name = "dataSource")
    @ConfigurationProperties(prefix = "spring.datasource.druid")
    public DataSource dataSource() {
        return DruidDataSourceBuilder.create().build();
    }

4. 重启测试

重启项目之后,访问地址http://localhost:8081/druid/login.html,登录配置的账号密码:admin/admin,可看到Druid首页,说明配置成功。
在这里插入图片描述


总结

好了,以上就是今天要讲的内容。本文主要介绍了SpringBoot如何整合Mybatis-plus,以及如何配置Druid数据库连接池,希望对你能有所帮助!

感谢大家的阅读,如果有什么疑问或者建议,欢迎评论区指正,感谢~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Java升级之路

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

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

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

打赏作者

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

抵扣说明:

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

余额充值