1.mysql数据库版本过低
报错:Cause: java.sql.SQLException: java.lang.ClassCastException: class java.math.BigInteger cannot be cast to class java.lang.Long (java.math.BigInteger and java.lang.Long are in module java.base of loader 'bootstrap')
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.44</version> </dependency>
直接更改数据库依赖,只要mysql在5.1.44以上就行
2.字符集报错
报错:Error querying database. Cause: java.sql.SQLException: Unsupported character encoding 'utf8;'.
<dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis? useSSL=false&useUnicode=true&characterEncoding=utf8&"/> <property name="username" value="***"/> <property name="password" value="***"/> </dataSource>
第一,将UTF-8改成utf8
第二,一定别忘记&这个转义字符,要不然它会将";"也会识别进去,最后你的字符集就成"utf8";这个太阴了 精准踩坑
3.无法识别sql语句,配置Mapper.xml连接数据库时没有提示之类的
在设置中找到SQL方言,将全局方言改成mysql就行
3.sqlsession空指针异常
1.这里必须是静态代码块,别忘记static了
static { try { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (Exception e) { e.printStackTrace(); } }
2.useSSL=false 这里设置成fasle,当然有证书不用理会
3.mapper.xml文件出问题,这里我将自己的贴出来,大伙自己对照着看一下,尤其是mappers这个标签里的内容
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=utf8&"/> <property name="username" value="root"/> <property name="password" value="121525"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/wgl/dao/UserMapper.xml"/> </mappers> </configuration>
这是我的文件结构
4.maven的配置遗漏,pom.xml文件,也就是资源过滤的问题,将资源依赖配置如下,在原有基础上加上这些就行
<build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> </resources> </build>