1.浅谈@RequestMapping @ResponseBody 和 @RequestBody 注解的用法与区别:
https://blog.csdn.net/ff906317011/article/details/78552426
2.Unknown column ‘xxx’ in ‘field list’
可能存在的问题有
1、javaBean和数据库里的字段名不对应,或者配置不匹配;
2、数据库里的字段名可能存在空格之类的细节错误;
3、字段名可能是关键字
我遇到的问题就是select的字段我写成了请求发过来的@Param的参数,导致了这个问题
3.Mysql添加数据时失败 Cannot add or update a child row: a foreign key constraint fails
原因:设置的外键与外键对应的表的主键值不匹配(换句话说你添加外键值在他所对的表中不存在)。
可以尝试在外键对应的表中添加一个主键值,在进行update
4.spring 中@Autowired注入失败问题:
解决方法是①首先查看@Autowired标记的字段对应的接口的实现类是否标记@Service、@Repository等交给Spring的IOC容器管理;②查看对应的类型是否一致或满足里氏代换原则,如@Autowired标记字段属性对应的接口的实现类是否实现了这个接口。
我就是忘记了@Service这个注解,尴尬
5.@Component, @Repository, @Service的区别
https://blog.csdn.net/fansili/article/details/78740877
@Component属于通用注解,可以自定义组件
@Repository属于持久层,注解类作为DAO(Data Access Object)对象
@Service属于业务逻辑层,注解类处理业务逻辑
@Controller作用于表现层(spring-mvc的注解),注解类进行前端请求的处理,转发,重定向。包括调用Service层的方法
6.MyBatis通过配置文件进行传参(多个)
https://www.cnblogs.com/mingyue1818/p/3714162.html
如果是注解的话,只需要在接口类加上@Param的注解,并且注意@Param注解的value适合ognl表达式#{}里的名称是一样的,不然匹配不到就会报错
7.mybatis中@Param的用法和作用
https://www.cnblogs.com/thomas12112406/p/6217211.html
@Select("select s_id id,s_name name,class_id classid from student where s_name= #{aaaa} and class_id = #{bbbb}")
public Student select(@Param("aaaa") String name,@Param("bbbb")int class_id);
1.@Select(....)注解的作用就是告诉mybatis框架,执行括号内的sql语句
2.s_id id,s_name name,class_id classid 格式是 字段名+属性名,例如s_id是数据库中的字段名,id是类中的属性名,这段代码的作用就是实现数据库字段名和实体类属性的一一映射,不然数据库不知道如何匹配
3.where s_name= #{aaaa} and class_id = #{bbbb} 表示sql语句要接受2个参数,一个参数名是aaaa,一个参数名是bbbb,如果要正确的传入参数,那么就要给参数命名,因为不用xml配置文件,那么我们就要用别的方式来给参数命名,这个方式就是@Param注解
4.在方法参数的前面写上@Param("参数名"),表示给参数命名,名称就是括号中的内容
public Student select(@Param("aaaa") String name,@Param("bbbb")int class_id);
给入参 String name 命名为aaaa,然后sql语句....where s_name= #{aaaa} 中就可以根据aaaa得到参数值了