SpringBoot中遇到的坑

SpringBoot中遇到的坑

坑一、

当我们在SpringBoot项目中整合MyBatis时,经常会使用@Mapper和@Select进行组合开发,这时所导入的必须是MyBatis-SpringBoot的整合包,否则会报Failed to configure a DataSource: 'url' attribute is not specified and no embedded或者没有Mapper之类的错误。
在这里插入图片描述
解决办法,导入mysbatis和springboot的整合包即可,如下:
在这里插入图片描述

坑2

同样是在SpringBoot项目中整合MyBatis时,经常会有这个报错***java.lang.AbstractMethodError: com.mysql.jdbc.Connection.isValid(I)Z***,这是因为使用连接池和pool版本相差太多的问题。抛出这个异常主要是 isVaild 在 com.mysql.jdbc.Connection 中并未实现上述方法,因此将会抛出抽象方法错误。

解决此只需尝试提高或降低mysql驱动的版本即可,大部分是驱动版本过低。

坑3

因为使用@Select写sql语句时,经常需要进行参数传递,特别是做模糊查询的时候,会有这和那的问题,这里对mybatis注解模糊查询的两种方式进行说明:
(1)一种拼接字符串

@Select("select * from xxx where name like #{name} ")
List findByName(String name)

测试的时候,传入的参数要拼接为

userDao.findByName("%name%")

(2)第二种是占位符, v a l u e , {value} , value,符号,属性必须是value,取参数的值

@Select("select * from xxx where  name like   '%${value}%'  ")
List<xxx> findByName(String name)

测试的时候,直接传入参数

userDao.findByName(name)

坑4

咋天还好好的项目,今天启动项目时突然报***com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception***此报错,看到com.mysql.jdbc.***Exception:还以为是数据库驱动出了问题,改了几次版本发现都还是报错,最后一查,原来是数据库挂了,重启数据库即可。在这里插入图片描述

坑5

同样的sql语句在数据库中能查出结果,但是在java springboot项目中,查不出来。解决办法:
查看application.properties配置文件中的spring.datasource.url 配置,
并在数据库后面加上以下这段代码来指定编码格式

useSSL=false&useUnicode=true&characterEncoding=UTF-8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值