Mybatis遇到的脑残问题

一、MySQL的版本问题

有的教程mysql是8.0版本使用jar包不一样

    <dependency>
         <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0</version>
        </dependency>

然后我查了一下我的mysql版本是5.7版本,然后我就改成

    <dependency>
         <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.7</version>
        </dependency>

结果还是报错。无语… 最后才想出来这里的 version是jar包的版本,不是mysql的版本。

    <dependency>
         <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>

二、错误:java.sql.SQLException: Column count doesn’t match value count at row 1

org.apache.ibatis.exceptions.PersistenceException: 
### Error updating database.  Cause: java.sql.SQLException: Column count doesn't match value count at row 1
### The error may exist in mappers/UserMapper.xml
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: insert into t_user value (null,'admin','123456',23,'123456@qq.com')
### Cause: java.sql.SQLException: Column count doesn't match value count at row 1


Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. 
```false
一开始的mybatis-config.xml如下所示:

```java
value="jdbc:mysql://localhost:3306/MyBatis"/>

修改为:

<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true"/>

三、 Can’t connect to MySQL server on ‘localhost’ (10061)

https://blog.csdn.net/m0_37987151/article/details/84316008



四、Mybatis-config模板后使用,文件图标为灰色

上午设置了mybatis-config模板。然后再创建文件名为:mybatis-config.xml后,文件图标成为了灰色
情况如下:
在这里插入图片描述
解决方法:
在这里插入图片描述
从上图的recognized file types中找和mybatis-config.xml灰色图标,然后发现:

在这里插入图片描述
1号箭头中也有mybatis-config.xml。这就是导致文件变灰色的原因。所以删掉2号箭头的内容即可。

五、Maven红线

maven导入依赖时,如果出现大量的红线。
在这里插入图片描述
则是因为没有设置好maven仓库。
在这里插入图片描述

六、测试不知道在哪运行

测试方法的时候不知道在哪运行
解决方法:忘记加注解:@Test

没加@Test 之前:
在这里插入图片描述

加了@Test 之后:
在这里插入图片描述

七、java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES)

有一种错误可能:
jdbc.properties文件设置jdbc.password的时候,密码为123456后面可能不小心打出了一个空格。
在这里插入图片描述
修改后:
在这里插入图片描述

八、 <mappers ></mappers>的坑(文件和路径)

在这里插入图片描述
由箭头1号可知:com.atguigu.mybatis.mapper 是路径,所以书写方式是:

<mappers>
        <mapper resource="com/atguigu/mybatis/mapper/EmpMapper.xml"/>
</mappers>

由箭头2号可知:com.atguigu.mybatis.mapper 是文件,所以书写方式是:

在这里插入图片描述

<mappers>
        <mapper resource="com.atguigu.mybatis.mapper/EmpMapper.xml"/>
</mappers>



九、MyBatis获取参数值的两种方式#{}和${}

#{}会自动加单引号
&{}需要手动加单引号

P35MyBatis批量删除中
删除id为1,2,3的数据。语句:

        delete from t_user where id in (${ids})  // 正 确
        delete from t_user where id in (#{ids})  // 错 误

因为id是int类型所以不需要加引号,而#{}会自动加单引号。所以需要使用&{}

自测:删除username为admin的数据

	delete from t_user where username in (#{username})  // 正确
	delete from t_user where username in (${username})  // 错误

因为username是String类型所以引号,而${}需要手动加单引号。所以需要使用#{}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值