标签:inpu artifact 数据库驱动 com ssi tar nts 生成 完成
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <!-- 数据库驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!-- mybatis-plus是自己开发的,非官方,不要同时导入mybatis和mybatis-plus--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.1.tmp</version> </dependency>
@MapperScan("com.wu.mapper")//扫描mapper文件夹 @SpringBootApplication public class MybatisPlusApplication { public static void main(String[] args) { SpringApplication.run(MybatisPlusApplication.class, args); } }
User
@Data @NoArgsConstructor @AllArgsConstructor public class User { @TableId(type= IdType.AUTO)//主键自增,数据库也需要自增 private Long id; private String name; private Integer age; private String email; //这两个字段的更新也可以在代码中实现 需要注解 //@TableField(fill= FieldFill.INSERT) private Date createTime;//驼峰命名 //@TableField(fill= FieldFill.INSERT_UPDATE) private Date updateTime; }
usermapper
//在对应的Mapper上面实现基本的接口BaseMapper @Repository//代表持久层 或者@Mapper也行 public interface UserMapper extends BaseMapper<User> { //所有的CRUD操作就已经编写完成了 }
测试类(查增改)
@SpringBootTest class MybatisPlusApplicationTests { @Autowired private UserMapper userMapper;//继承了baseMapper所有的方法都来自于父类,也可以自己扩展 @Test void contextLoads() { //参数是一个wrapper,条件构造器,这里我们先用null val users = userMapper.selectList(null);//查询所有的用户 users.forEach(System.out::println); } //测试插入 @Test void testInsert() { User user=new User(); user.setAge(4); user.setEmail("7777@qq.com"); user.setName("吴某"); int insert = userMapper.insert(user);//没有设置id,他帮我们自动生成了id System.out.println(insert);//1 System.out.println(user.getId());//1408045409112195073(Long) //这里使用的是雪花算法生成id //SnowFlake 算法,是 Twitter 开源的分布式 id 生成算法。其核心思想就是: // 使用一个 64 bit 的 long 型的数字作为全局唯一 id。在分布式系统中的应用十分广泛, // 且ID 引入了时间戳,基本上保持自增的。 } //测试更新 @Test void testUpdate(){ User user=new User(); user.setId(3L); user.setAge(2); user.setEmail("7777@qq.com"); user.setName("吴某"); userMapper.updateById(user); } }
3.2.1 在数据库中去除默认值
3.2.2 在pojo的相应字段加上注解
//这两个字段的更新也可以在代码中实现 需要注解 @TableField(fill= FieldFill.INSERT) private Date createTime;//驼峰命名 @TableField(fill= FieldFill.INSERT_UPDATE) private Date updateTime;
3.2.3 编写一个hander类具体实现
@Slf4j//日志的注解 @Component//记住把处理器加入到ioc容器中 public class MyMetaObjectHandler implements MetaObjectHandler { //插入时的填充策略 @Override public void insertFill(MetaObject metaObject) { log.info("开始执行了"); this.setFieldValByName("createTime",new Date(),metaObject); this.setFieldValByName("updateTime",new Date(),metaObject); } //更新时候的填充策略 @Override public void updateFill(MetaObject metaObject) { log.info("开始处理了"); this.setFieldValByName("updateTime",new Date(),metaObject); } }
标签:inpu artifact 数据库驱动 com ssi tar nts 生成 完成
原文地址:https://www.cnblogs.com/wuyimin/p/14928728.html