springboot自定义应用开发框架三 —— 整合mybatis plus+集成druid+模版自动生成代码文件

框架结构

按照笔记一的做法,项目分为元件库、框架、项目开发,元件库和框架可以在不同的项目中重复使用,也即以后不同的项目只要引入这2个jar文件即可使用spring boot一系列的功能,项目只用专注于本身的业务即可,如本案例的结构如下
项目结构

hn-component

元件库,也是最顶层的jar,主要是一些基础类和工具类

hn-framework

项目的基础框架,包括springboot ,mybatis,mybatisplus,redis 等集成封装环境,也包含一些自定义的功能,例如日志、mybatisplus的二次封装、排程、后台的路由权限等等。

demo

本次案例的项目,在实际中就是待开发的项目

整合mybatis plus

打开hn-framework 中的pom.xml, 引入相应的jar包

        <!--元件库-->
        <dependency>
			<groupId>com.hnexm.component</groupId>
			<artifactId>hn-component</artifactId>
			<version>1.0.0-SNAPSHOT</version>
		</dependency>		
		<!--mysql-->
        <dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>
		<!-- MyBatis-plus插件-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.1.0</version>
        </dependency>
        <!--代码生成器-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.1.0</version>
        </dependency>
        <!-- 模板引擎-->
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.28</version>
        </dependency>
		<!-- alibaba的druid数据库连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.16</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
		

上面相应的jar看名称就能知道是干什么用的,就不多做说明了

修改项目的pom.xml ,这里就是demo

   		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>		
		<dependency>
			<groupId>com.hnexm.framework</groupId>
			<artifactId>hn-framework</artifactId>
			<version>1.0.0-SNAPSHOT</version>
		</dependency>

这里主要就是引入我们自己的框架即可,(spring-boot-starter-test 是用于做junit测试所用)

编写配置文件 application.yml

server:
  port: 8888
#数据源配置
spring:
  datasource:
    name: test
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&serverTimezone=GMT&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
    username: root
    password: 123456
    # 使用druid数据源
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    druid:
      initialSize: 5
      minIdle: 5
      maxActive: 20
      maxWait: 60000
      timeBetweenEvictionRunsMillis: 60000
      minEvictableIdleTimeMillis: 300000
      validationQuery: select 'x'
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false
      poolPreparedStatements: true
      maxOpenPreparedStatements: 20
      maxPoolPreparedStatementPerConnectionSize: 20
      # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙,此处是filter修改的地方
      filters: stat,wall,log4j
      statViewServlet:
        enabled: true
        allow: 127.0.0.1 #允许哪些ip访问,没有配置或者为空,则允许所有访问
        url-pattern: /druid/* 
        loginUsername: admin
        loginPassword: 123456
      webStatFilter:
        enabled: true
        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
        url-pattern: /*
      # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
      connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
      # 合并多个DruidDataSource的监控数据
      useGlobalDataSourceStat: true
## 独立的节点,有很多同学容易将这个配置放在spring的节点下,导致配置无法被识别
mybatis-plus:
  mapper-locations: classpath*:mapping/**/*Mapper.xml  #注意:一定要对应mapper映射xml文件的所在路径
  type-aliases-package: com.hnexm.**.entity  # 注意:对应实体类的路径
  configuration:
    mapUnderscoreToCamelCase: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

以上代码关键的地方都有注释,都是通用的,大家看看名字也就明白了。

数据库

创建一个名称为:test 的数据库,创建2个基本的表。如下图
sys_user : 用户表 ; log: 日志表
通过模版文件,自动生成相应的代码
运行 MysqlGenerator.java ,查看控制台,按照提示输入相应的内容即可,如下图
自动生成代码
生成好后,刷新项目目录,则会发现出现相应的各层的代码,如下图
代码
这里要将实体类修改下,加上主键ID,将对应的Mapper.java文件加上注解
在这里插入图片描述
在这里插入图片描述
PS:实体类上默认可以不加@TableName,我的习惯是加上。
接下来模拟新增一个账号的程序。

controller

@RestController
@RequestMapping("sysUser")
public class SysUserController {
	@Autowired
	ISysUserService sysUserService;
	@PostMapping("create")
	public AjaxResponse create(@RequestBody final SysUser user) {
		return sysUserService.create(user);
	}
}

service

@Service
public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements ISysUserService {
	@Autowired
	ILogService logService;
	@Override
	public AjaxResponse create(final SysUser user) {
		try {
			final Log log = new Log();
			log.setId(HnIdUtils.getNewId());
			log.setUrl("sysUser/user");
			logService.save(log);
			user.setId(HnIdUtils.getNewId());
			this.save(user);
		} catch (final Exception e) {
			throw new HnException("新增用户异常:" + e.getMessage());
		}
		return new SucceedResponse("新增用户成功");
	}
}

这里的主键是自定义的,大家可以自行编写,网上很多。
用postman提交模拟数据。
在这里插入图片描述
如上图所示,用户添加成功,打开数据库查看内容
在这里插入图片描述

查看druid

在浏览器中输入:http://127.0.0.1:8888/druid/login.html
如果能够打开登录页面,说明配置成功,然后用配置文件里设置的帐号密码登录,登录后如下图所示:
在这里插入图片描述
以上就初步的完成了springboot \mybatis plus\druid 的初级集合,后续还有很多需要完善的地方,例如数据库事务、日志的自动处理、新增修改数据时自动更新数据的编写者和时间,删除的状态统一处理,这些都是要通过框架的二次封装来完成的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一种用于构建Java应用程序的框架,而Druid是一种开源的Java数据库连接池。MyBatis Plus是MyBatis的增强工具,可以简化数据库操作。将这整合在一起,可以提高开发效率和代码的易读性。 首先,我们需要在项目的pom.xml文件中添加引用依赖。可以通过Maven或Gradle来管理依赖项。在pom.xml中添加Spring Boot、DruidMyBatis Plus的相关依赖。 接下来,在application.yml或application.properties文件中配置数据库连接信息和Druid的相关配置。包括数据库的URL、用户名、密码以及Druid的一些监控和性能统计配置。 然后,创建一个DataSourceConfig类,用于配置Druid数据源,并使用@Configuration和@Bean注解将它声明为一个Bean。在该类中,可以设置连接池的一些属性,例如最小连接数、最大连接数、初始连接数等。 接着,创建一个MyBatisConfig类,用于配置MyBatis Plus。在该类中,可以配置MyBatis的类型别名、Mapper扫描路径和拦截器等。 最后,创建一个启动类,并使用@SpringBootApplication注解将其声明为Spring Boot应用程序的入口。在启动类中,可以使用@MapperScan注解指定MyBatis的Mapper接口所在的包路径,并在main方法中调用SpringApplication的run方法来启动应用程序。 通过以上步骤,我们就完成了Spring Boot、DruidMyBatis Plus的整合。现在可以在项目中编写Mapper接口和对应的XML文件,用于定义数据库的增删改查操作。并使用@Service或@Repository注解将Mapper接口声明为Spring组件,从而可以在其他地方直接使用@Autowired注解进行自动注入。 除此之外,还可以利用MyBatis Plus的一些特性,如自动生成代码、分页查询、多数据源配置等,进一步提高开发效率。 总结起来,Spring Boot、DruidMyBatis Plus的整合可以简化数据库操作,并提供了一些方便的特性和工具,让开发变得更加高效和简单。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值