百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

SpringBoot整合Mybatis-plus实践 springboot整合tk.mybatis

suiw9 2024-11-13 14:44 29 浏览 0 评论

前言

Hi,大家好,我是希留。

上一篇文章中我们认识了SpringBoot,并学会了创建SpringBoot项目,今天这篇文章讲述一下SpringBoot怎么整合Mybatis-plus,进行数据库的相关操作。

源码地址:https://gitee.com/huoqstudy/xiliu-admin.git


目录

  • 一、先初始化一个工程
  • 二、添加依赖
  • 三、配置application.properties文件
  • 四、创建代码生成器类并执行
  • 五、编写Mybatis配置类
  • 六、编写controller
  • 七、启动项目测试
  • 八、配置Druid连接池


一、先初始化一个工程

可以参照上一篇文章,这里就不复述了。初始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。由于SpringBoot默认的连接池是HikariCP,所以使用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数据库连接池。

感谢大家的阅读,这篇文章对你有帮助吗?

相关推荐

5款Syslog集中系统日志常用工具对比推荐

一、为何要集中管理Syslog?Syslog由Linux/Unix系统及其他网络设备生成,广泛分布于整个网络。因其包含关键信息,可用于识别网络中的恶意活动,所以必须对其进行持续监控。将Sys...

跨平台、多数据库支持的开源数据库管理工具——DBeaver

简介今天给大家推荐一个开源的数据库管理工具——DBeaver。它支持多种数据库系统,包括Mysql、Oracle、PostgreSQL、SLQLite、SQLServer等。DBeaver的界面友好...

强烈推荐!数据库管理工具:Navicat Premium 16.3.2 (64位)

NavicatPremium,一款集数据迁移、数据库管理、SQL/查询编辑、智能设计、高效协作于一体的全能数据库开发工具。无论你是MySQL、MariaDB、MongoDB、SQLServer、O...

3 年 Java 程序员还玩不转 MongoDB,网友:失望

一、什么场景使用MongoDB?...

拯救MongoDB管理员的GUI工具大赏:从菜鸟到极客的生存指南

作为一名在NoSQL丛林中披荆斩棘的数据猎人,没有比GUI工具更称手的瑞士军刀了。本文将带你围观五款主流MongoDB管理神器的特性与暗坑,附赠精准到扎心的吐槽指南一、MongoDBCompass:...

mongodb/redis/neo4j 如何自己打造一个 web 数据库可视化客户端?

前言最近在做neo4j相关的同步处理,因为产线的可视化工具短暂不可用,发现写起来各种脚本非常麻烦。...

solidworks使用心得,纯干货!建议大家收藏

SolidWorks常见问题...

统一规约-关乎数字化的真正实现(规范统一性)

尽管数字化转型的浪潮如此深入人心,但是,对于OPCUA和TSN的了解却又甚少,这难免让人质疑其可实现性,因为,如果缺乏统一的语义互操作规范,以及更为具有广泛适用的网络与通信,则数字化实际上几乎难以具...

Elasticsearch节点角色配置详解(Node)

本篇文章将介绍如下内容:节点角色简介...

产前母婴用品分享 篇一:我的母婴购物清单及单品推荐

作者:DaisyH8746在张大妈上已经混迹很久了,有事没事看看“什么值得买”已渐渐成了一种生活习惯,然而却从来没有想过自己要写篇文章发布上来,直到由于我产前功课做得“太过认真”(认真到都有点过了,...

比任何人都光彩照人的假期!水润、紧致的肌肤护理程序

图片来源:谜尚愉快的假期临近了。身心振奋的休假季节。但是不能因为这种心情而失去珍贵的东西,那就是皮肤健康。炙热的阳光和强烈的紫外线是使我们皮肤老化的主犯。因此,如果怀着快乐的心情对皮肤置之不理,就会使...

Arm发布Armv9边缘AI计算平台,支持运行超10亿参数端侧AI模型

中关村在线2月27日消息,Arm正式发布Armv9边缘人工智能(AI)计算平台。据悉,该平台以全新的ArmCortex-A320CPU和领先的边缘AI加速器ArmEthos-U85NPU为核心...

柔性——面向大规模定制生产的数字化实现的基本特征

大规模定制生产模式的核心是柔性,尤其是体现在其对定制的要求方面。既然是定制,并且是大规模的定制,对于制造系统的柔性以及借助于数字化手段实现的柔性,就提出了更高的要求。面向大规模定制生产的数字化业务管控...

创建PLC内部标准——企业前进的道路

作者:FrankBurger...

标准化编程之 ----------- 西门子LPMLV30测试总结

PackML乃是由OMAC开发且被ISA所采用的自动化标准TR88.00.02,能够更为便捷地传输与检索一致的机器数据。PackML的主要宗旨在于于整个工厂车间倡导通用的“外观和感觉”,...

取消回复欢迎 发表评论: