新手增删改查时,遇到的坑和需要注意的问题

增删改查:

编辑项目时;
用实体类接收前端参数,在dao层的参数上不要加@param注释,包括Map等集合,这样会导致xml文件的sql语句无法映射到参数的,而一般参数,例如Integer、String等参数,加上@param有益于映射,简单点说,就是加上他可以避免一些错误。
在这里插入图片描述
联表查询:
联表查询的时候,对于数据比实体类多的时候,首先判断是一对多,还是多对一或者多对多;
这样在xml文件上写二者关联的sql语句时,才能定义标签:
在这里插入图片描述
多对一:association 一对多: collection
一对多的情况下:
在一所对应的实体类中加入List<多的实体类>list,因为一条数据对应多条数据,使用list封装
多对多的时候;
在各自对应的实体类中,加上对方的实体类,使用set封装,并且创建一个新的实体类pojo:加入每一个表对应的实体类,
例:User user;Children children;等等
多对一的情况下:
在多的表对应的实体类上加入一的表对应的实体类。
另外在联表查询的时候,所需要的功能需要编辑两张表,要将两个方法写在一起,一同操作两张表,保持两张表的一致性,使用@Transactional,事务 标签,当第一个方法运行成功过改好第一张表时,第二张表编辑失败,则会 发生意外事务自动回滚,让你重新从第一张表开始重新编辑,就是要成功一起编辑成功,要失败就一起编辑失败,保持事务的一致性。

运行程序时报错

通过Postman发送参数后,如果程序正常运行,那么问题一般出在Postman上,你需要检查地址、参数、发送格式等,写错一个字母都会报错,如果时后端项目的问题,一般都会又错误提示的。如果在项目中莫名其妙出现类加载方面的问题,首先Maven刷新下再说,在你新增加一些东西后,可能就是没刷新,所以程序才会说加载不到,找不到的。

另外,方法没问题,sql语句也是对的,但是传参测试的时候,就是会报系统参数类型不匹配错误:
java.lang.IllegalArgumentException: argument type mismatch
这是由于mybatis-plus会自动插入一个id到实体对象, 默认是生成一个长数字字符串(编码不同可能结尾带有字母),不管你封装与否, 所以有时候导致一些意外的情况发生,解决的方法有:
1.修改id属性,换成Long类型,再长的数据也不怕
2.加上注解AUTO,提示数据库id自增:
在这里插入图片描述
具体解决方法链接,点击这里

Druid连接池

Druid首先是一个数据库连接池,但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQLParser。Druid支持所有JDBC兼容的数据库,包括Oracle、MySql、Derby、Postgresql、SQLServer、H2等等。
Druid针对Oracle和MySql做了特别优化,比如Oracle的PSCache内存占用优化,MySql的ping检测优化。Druid在监控、可扩展性、稳定性和性能方面都有明显的优势。Druid提供了Filter-Chain模式的扩展API,可以自己编写Filter拦截JDBC中的任何方法,可以在上面做任何事情,比如说性能监控、SQL审计、用户名密码加密、日志等等。
在这里插入图片描述

前端调用后端接口问题

后端数据返回前端时,要注意统一包装格式和下划线问题:
我们公司统一使用的是content格式,可以是用Mybatis-plus封装后,使用PageUtils.toPage()方法将文件以Content格式返回,但是会出现数据库下划线,例:user_name,导致前端需要调整才能接收返回的参数,当然也可以手调,特麻烦,所以最好还是使用Result的方法,一般情况下,为了方便项目返回时,告诉程序员返回成功还是失败,都会写一个统一的返回方法,里面就有各种格式返回的选择,就包括以什么格式的方式返回数据,这样就能避免格式和下划线的问题。
正常项目都有基本都是围绕Result命名,新手请注意。
在这里插入图片描述
在这里插入图片描述
后端注解:@Repository,写在dao层,@Repository注解,它用于将数据访问层 (DAO 层 ) 的类标识为 Spring Bean。具体只需将该注解标注在 DAO类上即可。同时,为了让 Spring 能够扫描类路径中的类并识别出 @Repository 注解,需要在 XML 配置文件中启用Bean 的自动扫描功能,这可以通过context:component-scan/实现。如下所示:
在这里插入图片描述
具体介绍链接,点这里

Idea重写方法的快捷键:Ctrl+O

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值