问题3:实体类注解使用: @JsonIgnore @JsonView @JSONField (其实还有很多,后面有用到在逐步添加)
问题5:mybatis自带的insert()和insertSelective()的区别
问题1:无bean时@Autowired 报错。
idea中springboot无法自动装配Could not autowire. No beans of 'UserMapper' type found. 如下图,能用,但idea报错很讨厌。
解决方法如下图:
参考:https://blog.csdn.net/weixin_42072280/article/details/110383793
问题2:Mybatis的bean映射不了
2. 使用mybatis自带的方法selectByPrimaryKey无法根据id查询 SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@46398ada] was not registered for synchronization because synchronization is not active
解决方法:
1)bean要实现序列化,否则mybatis查询出的结果无法映射bean。
2)主键加上@Id注解,且注解引入的是 import javax.persistence.Id; 而不是 import org.springframework.data.annotation.Id(我犯得错误);
3)对于数字, 不能是long常量,需要改成对象,即 Long,Integer,Short才能映射。(这个也是我犯得错误)
参考:https://blog.csdn.net/weixin_42072280/article/details/110383793
问题3:实体类注解使用: @JsonIgnore @JsonView @JSONField
(其实还有很多,后面有用到在逐步添加)
@JsonIgnore @JsonView 用途:此注解的主要用途就是当你返回实体类时去除敏感信息。比如:有个user表里面有个pwd字段,查询出user后,不想返回pwd字段。可以使用此注解去除pwd字段。
@JsonIgnore 是适合于对于用到这个的实体类在返回到前台时去除其标注的字段,
@JsonView 不能绝对,有的场景要去除,有的场还要返回到页面,这时可以用@JsonView注解来做。使用方法参照https://blog.csdn.net/cauchy6317/article/details/92788938
@JSONField 是对字段进行格式话 eg:@JSONField(format="yyyy-MM-dd HH:mm:ss") 可参考: http://t.zoukankan.com/756623607-zhang-p-10312178.html
问题4:@Transient、@Id注解
@Transient 注解
表中没有某个字段,但是页面又要显示。此时,根据表生成的实体类,是不包含这个字段的,这时候,可以使用注解 @Transient 。这个注解的意思是 该属性并非一个到数据库表的字段的映射。
(说白了,使用mybatis自带的insert()、insertSelective()等方法时,不会处理有@Transient 注解的字段。当然在使用mybatis自带的查询时,也不会处理,这时查询时可自己写sql,sql查询列带上这个字段,就有了)
@Id 注解 在实体类中,主键的话加上这个注解,这样mybatis自带的方法selectByPrimaryKey等就可以使用了
问题5:mybatis自带的insert()和insertSelective()的区别
- insert() 方法是mybatis在组装SQL语句时,实体类中有的字段(不包括有@Transient 注解的)都会进行组装
- insertSelective() 方法是 mybatis在组装SQL语句时,不仅仅看实体类中的字段,还会看赋值的字段参数是否为空,如为空也不会进行组装插入
2.首先要使用mybatis自带的方法需要进行如下配置
1) mapper类要继承Mapper 2)实体类要实现序列化,对于主键加上@Id注解
问题6:@Data注解
详见这个网站的介绍,已经非常详细了:https://www.cnblogs.com/myitnews/p/12386333.html
我常用的就是@Data注解,这样实体类的set、get、toString 方法不用再写了,代码很简洁。对于IDEA需要安装Lombok插件,否则报错。
本文来自博客园,作者:东方飘雪,转载请注明原文链接:https://www.cnblogs.com/zdyang/p/16086739.html