自定义 mybatis generator plugin_谈谈自己用mybatis-plus中的一些经验。

软件:idea 然后用spring boot 数据库用的postgersql

在谈mybatis-plus之前,我先说一个开发中非常好用的插件吧。用了这款插件之后,开发起来,会快很多。他就是 ----- > Mybatis plugins

9d3ab70b35c1bad22f4b6c098fbe874d.png
我这是安装好了的,没安装好之前是install,直接点就可以了。

不知道这是什么玩意的,Intellij Idea Mybatis 插件(plugin和tools插件) 可以点进去了解一下。

下面开始我们今天的主题:mybatis-plus

首先先导入jar包

		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-boot-starter</artifactId>
			<version>3.0.1</version>
		</dependency>

		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatisplus-spring-boot-starter</artifactId>
			<version>1.0.5</version>
		</dependency>
		<dependency>
			<groupId>org.apache.velocity</groupId>
			<artifactId>velocity-engine-core</artifactId>
			<version>2.0</version>
		</dependency>
  

然后在配置文件中配置数据源

# Tomcat
server:
  tomcat:
    uri-encoding: UTF-8
    max-threads: 1000
    min-spare-threads: 30
  port: 8880


spring:
  application:
    name: userinfo_plus
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driverClassName: org.postgresql.Driver
    druid:
      url: jdbc:postgresql://xx.xx.xx.xx/项目名
      username: postgres
      password: postgres
      initial-size: 10
      max-active: 100
      min-idle: 10
      max-wait: 60000
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      time-between-eviction-runs-millis: 60000
      min-evictable-idle-time-millis: 300000
      validation-query: SELECT 1
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      stat-view-servlet:
        enabled: true
        url-pattern: /druid/*
      filter:
        stat:
          log-slow-sql: true
          slow-sql-millis: 1000
          merge-sql: true
        wall:
          config:
            multi-statement-allow: true
mybatis:
  mapperLocations: classpath:mybatis/mapping/**/*.xml
  config-location: classpath:mybatis/mybatis-config.xml
#逻辑删除的状态
mybatis-plus:
  global-config:
    db-config:
      logic-delete-value: 1 
      logic-not-delete-value: 0 

数据源配置好之后新建一个包generator然后在其中新建一个类CodeGenerator(这个随便自己)

3b079e42580b22afd2152aa3316b119a.png
自动生成,超级方便。

40c2e0a300ed081ac55653a47616b4b1.png

然后运行输入你的表名,就会自动生成相应的mapper层,server层,controller层等等

下面说的是个人习惯:

将mapper层中加入Mapper注解(这个注解可以不加,在启动类中加入@MapperScan("com.example.demo.mapper")也可以),controller层加入RestController注解。然后就可以写业务了,非常的舒服。

55171cfe9fe26bb9968a43fa1e5bf4e7.png
这是一个controller的一个例子

entity层的话,可以继承下Model类,然后重写pkVal方法

d3bf9e9c8b9bd839c6844ac094f8c8f0.png

c403f6e8b23e7710d6a077fefb7406f0.png
这里面的注解什么的在下面解释下。

一。 如果你的删除是逻辑删除,就在你的状态上加上@TableLogic注解,

然后在你的config中注入

 @Bean
    public LogicSqlInjector logicSqlInjector(){
        return new LogicSqlInjector() ;
    }

二。如果业务需要加上乐观锁,只需要在你的版本号字段上面加上@Version注解,和jpa一样方便。

然后在你的config中注入

//乐观锁(目前只支持updateById和update方法)
    @Bean
    public OptimisticLockerInterceptor optimisticLockerInterceptor() {
        return new OptimisticLockerInterceptor();
    }

三。 分页也需要注入,不注入也可以分页吧,不过不是数据库分页,你可以看生成的sql语句就知道了。

@

@TableField注解 表示要和数据库的名字一样

    @TableField( "update_time")
    private LocalDateTime updateTime;
   

@TableId(type = IdType.AUTO) //表示mysql的自增,我用的是postgresql,所以没有试过。

@TableField(condition = SqlCondition.LIKE)//模糊查询,不设置的话会默认。

基本上就是这个样子,完成的项目的话在https://download.csdn.net/download/qq_37716298/10848675 (私聊我 麻烦!!!!!!!!!!!!!!!)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值