1.首先先简单说一说@Table注解的作用:该注解一般用在pojo实体类的类名上,使用该注解后pojo类的属性会和对应的表字段做一个映射关系(这实际上和<resultMap>标签有着异曲同工之处,但个人觉得后者更强大,能处理比较复杂的关系),也就是说对于简单的映射关系来说可以不用再xml文件里写<resultMap>标签作映射了。那么在xml文件里就需要将resultMap改为resultType
先献上示例图:
注意第一张图的label_id这个字段这种加了下划线的属性(这种写法会让属性(类)和字段(表)无法映射),结果如下
但是我们可以将label_id(类的) 改为 labelId,也就是说注解能够将pojo类属性labelId与表字段label_id做映射
2.这里再说一说springboot的通用mapper调用注意点:
为了演示效果,这里我们先让LabelMapper接口继承通用mapper:
然后在service层调用通用mapper的方法:
启动后直接在该方法出报错了:
原因:原来通用mapper会将pojo类的labelName字段直接解析成 label_name ,具体原因如下:
解决方案:
1.将默认的驼峰命名设置为false,并且字段名和属性名一致(大小写无所谓,单词一样就行,因为mysql对大小写不敏感)
2.可以通过注解方式解决表字段名和类属性名不一样的情况,在属性上设置@TableField(value="stu_name")
注意点:一般建议开启驼峰命名,表字段写成带下划线的!