通过前面的学习,我们了解到通过继承BaseMapper就可以获取到各种各样的单表操作,接下来我们将详细讲解这些操作。
关于下面的相关操作,MybatisPlus的 配置如下:
MybatisPlus快速上手1——MybatisPlus插件的介绍和整合
我们可以创建一个测试,用于测试插入数据
@RunWith(SpringRunner.class) //SpringRunner继承于SpringJUnit4ClassRunner
@SpringBootTest
public class TestUserMapper {
@Autowired
private UserMapper mapper;
@Test
public void testInsert(){
User user = new User();
user.setUserName("zangsan");
user.setName("张思睿");
user.setAge(18);
user.setEmail("123@123.com");
user.setPassword("123456");
int result = mapper.insert(user); //返回值是数据库受影响的行数
System.out.println("result==>"+result);
//获取自增长后的id值,自增长后的id值会回填到user对象中
System.out.println("id==>"+user.getId());
}
}
可以看到,数据已经写入到了数据库,但是,id的值不正确,我们期望的是数据库自增长,实际是MP生成了id的值写入到了数据库。
届时我们需要修改User类,在id上加上注解 @TableId(value = "id",type = IdType.AUTO)
@Data //生成get\set方法
@NoArgsConstructor //无参构造
@AllArgsConstructor //全参构造
@TableName("tb_user") //指定对应的数据库表名
public class User {
@TableId(value = "id",type = IdType.AUTO) //指定id类型为自增长
private Long id;
private String userName;
private String password;
private String name;
private Integer age;
private String email;
}
届时我们的数据就插入成功了
注意:这里我们需要将数据删除,并修改表的自增长为正常值;若再次执行依旧不能实现自增长,那就删除表重新插入数据。
在MP中通过@TableField注解可以指定字段的一些属性,常常解决的问题有2个:
1、对象中的属性名和字段名不一致的问题(非驼峰)
2、对象中的属性字段在表中不存在的问题
3、设置字段是否可以被查询
@Data //生成get\set方法
@NoArgsConstructor //无参构造
@AllArgsConstructor //全参构造
@TableName("tb_user") //指定对应的数据库表名
public class User {
@TableId(value = "id",type = IdType.AUTO) //指定id类型为自增长
private Long id;
private String userName;