我们介绍下mybatis plus相关的内容,在java项目里面,mybatis plus的应用非常广泛,几乎是做web开发的同学的必备。mybatis plus极大的简化了大家的开发任务,提高了效率。
这篇文章我们首先介绍mybatis plus的第一个特点,对于id的操作自增。
在做ToB项目的时候,我们很多表几乎都是使用的自增,那么在使用的时候,我们就可以不用自定义id,在mybatis的实体类里面,只需要添加一个注解即可:
@TableId(type = IdType.AUTO)
下面我们来演示一下,搭建一个mybatis plus的项目,并且实现id自增。
一、创建一张user表
CREATE TABLE `user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id', `name` varchar(20) DEFAULT NULL COMMENT '姓名', `age` tinyint(1) DEFAULT NULL COMMENT '性别,1:男,2:女', `tel` varchar(11) DEFAULT NULL COMMENT '手机号码', `cts` datetime DEFAULT NULL COMMENT '创建时间', `uts` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
二、创建一个maven的项目,并且引入下面的依赖
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.bgee.log4jdbc-log4j2</groupId> <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId> <version>${log4jdbc.log4j2.version}</version> </dependency> <!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.3.1</version> </dependency> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.49</version> </dependency> </dependencies> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.8</version> </parent>
备注:
1、这里需要注意下使用的mybatis plus的版本,这块与spring boot的版本需要进行大致的对应,如果版本对应不上,启动项目会直接报错。
三、创建User实体类
package com.mybatis.demo.model; import java.io.Serializable; import java.util.Date; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.ToString; import lombok.experimental.Builder; @Data @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode @ToString @Builder public class User implements Serializable { /** * */ private static final long serialVersionUID = 4824273035410072985L; @TableId(type = IdType.AUTO) private Long id; private String name; private Integer age; private String tel; private Date cts; private Date uts; }
四、编写userMapper
package com.mybatis.demo.dao; import org.springframework.stereotype.Repository; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.mybatis.demo.model.User; @Repository public interface UserMapper extends BaseMapper<User>{ }
备注:
1、我们只需要继承这个BaseMapper,即可相当于对于单表的普通的增删改查的sql都不需要自己写了,全是自动生成的。
2、在mapper里面,我们一般使用Repository注解。
五、在主类上配置mapper的扫描包
package com.mybatis.demo; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan("com.mybatis.demo.dao") public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } }
备注:
1、这里配置mapper的扫描包 mapperScan是必备的,都需要进行配置,如果不配置,启动的时候会发现找不到usermapper这个bean。
六、配置文件中,添加mysql的配置
spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://192.168.31.30:3306/test2?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8 spring.datasource.username=test2 spring.datasource.password=sxfxzmLm5yTc42Tb
七、创建controller,做user的add
package com.mybatis.demo.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.mybatis.demo.dao.UserMapper; import com.mybatis.demo.model.User; @RestController public class HelloController { @Autowired UserMapper userMapper; @RequestMapping("/userAdd") String userAdd() { User user = User.builder().name("张三").age(15) .tel("13888888888") .build(); userMapper.insert(user); return "SUCCESS"; } }
八、启动后需要测试下
可以看到测试成功,此时我们去数据库看下效果.
数据进来了,同时我们再代码里面也没有设置id。
以上就是mybatis项目实现实体id自增的做法及演示。
备注:
1、实现自增的话,需要在实体类里面添加如下的注解:@TableId(type = IdType.AUTO)
2、mysql的表设计的时候需要勾选自增的选项
最后我们附上本文的案例源码,登录后即可下载。
还没有评论,来说两句吧...