实体类
@Data
@TableName(value="t_book")
@Repository
public class Book {
@TableId(value = "id",type = IdType.AUTO) // 表示id自增存储,这个地方要写,而且MySQL中也要设定自增 value表示主键名
@TableField(value = "id")
private int id;
@TableField(value = "bookName")
private String bookName;
@TableField(value = "statue")
private String statue;
}
接口:
//数据库SQL映射需添加@Mapper被容器识别,定义数据层接口与映射配置
@Mapper
public interface BookDao extends BaseMapper<Book> {
}
测试类:
```java
@SpringBootTest(classes = SsmpApplication.class)
class SsmpApplicationTests {
@Autowired
private BookDao bookDao;
@Test
void contextLoads() {
System.out.println(bookDao.selectById(10086));
}
@Test //测试保存
@Options(useGeneratedKeys = true,keyProperty = "id")
void testSave(){
Book book = new Book();
// id也可不用我们设定,因为在数据库中有一个自增设置
// book.setId(10091);
book.setBookName("信息管理系统");
book.setStatue("优秀");
// 添加操作
bookDao.insert(book);
}
@Test
void testUpdate(){
}
}
当上述程序不采用自增的时候,就可以插入数据不报错,但是采用自增的情况下就会报错
数据库也设置了主键自增功能
结果:
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/870428105946164.png "#left")
各种依赖配置也已经设置了 ,但是没有设置关于自增的配置,只写了注解,通过百度也没发现这一个地方有配置