新⼿增删改查时,遇到的坑和需要注意的问题
增删改查:
编辑项⽬时;
⽤实体类接收前端参数,在dao层的参数上不要加@param注释,包括Map等集合,这样会导致xml⽂件的sql语句⽆法映射到参数的,⽽⼀般参数,例如Integer、String等参数,加上@param有益于映射,简单点说,就是加上他可以避免⼀些错误。
springer数据库中重要的期刊介绍
联表查询:
联表查询的时候,对于数据⽐实体类多的时候,⾸先判断是⼀对多,还是多对⼀或者多对多;mysql面试题 增删改查
git拉项目到本地这样在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⾃增:
floorgenerator
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封装后,使⽤Page()⽅法将⽂件以Content格式返回,但是会出现数据库下划线,例:user_name,导致前端需要调整才能接收返回的参数,当然也可以⼿调,特⿇烦,所以最好还是使⽤Result的⽅法,
现数据库下划线,例:user_name,导致前端需要调整才能接收返回的参数,当然也可以⼿调,特⿇烦,所以最好还是使⽤Result的⽅法,⼀般情况下,为了⽅便项⽬返回时,告诉程序员返回成功还是失败,都会写⼀个统⼀的返回⽅法,⾥⾯就有各种格式返回的选择,就包括以什么格式的⽅式返回数据,这样就能避免格式和下划线的问题。
正常项⽬都有基本都是围绕Result命名,新⼿请注意。
我的世界selector后端注解:@Repository,写在dao层,@Repository注解,它⽤于将数据访问层 (DAO 层 ) 的类标识
为 Spring Bean。具体只需将该注解标注在 DAO类上即可。同时,为了让 Spring 能够扫描类路径中的类并识别出 @Repository 注解,需要在 XML 配置⽂件中启⽤Bean 的⾃动扫描功能,这可以通过context:component-scan/实现。如下所⽰:
Idea重写⽅法的快捷键:Ctrl+O
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论