mybatis配置问题
新建项目
-
创建一个普通的maven项目
-
删除src目录 (就可以把此工程当做父工程了,然后创建子工程)
-
导入maven依赖
<!--连接数据库--> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <!--mybatis--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.4</version> </dependency> <!--junit--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency>
2.2 创建一个模块
-
编写mybatis的核心配置文件(一般放在resources下)
-
创建一个文件,名字后缀为.xml就可以,不用里面的xml配置文件
-
字符问题
5.7版本
<?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?userSSL=true&useUnicode=true&characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="123"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/jirong/dao/UserMapper.xml"/>
</mappers>
</configuration>
数据库8.0版本
<?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核心配置文件-->
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?userSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!--资源代码注册-->
<mappers>
<mapper resource="com/jirong/dao/UserMapper.xml"/>
</mappers>
</configuration>
5.7的不会报Caused by: org.xml.sax.SAXParseException; lineNumber: 5; columnNumber: 15; 1 字节的 UTF-8 序列的字节 1 无效。
8.0版本会报这个错误
原因
8.0版本出现了中文注释报错了
解决方法
<?xml version="1.0" encoding="UTF-8" ?>
变成<?xml version="1.0" encoding="UTF8" ?>就可以解决
导入资源失败
Caused by: org.apache.ibatis.exceptions.PersistenceException:
Error building SqlSession.
The error may exist in com/jirong/dao/UserMapper1.xml
1.maven自身的问题
解决方法pom.xml中添加如下代码
<!--在build中配置resources,来防止我们资源导出失败的问题-->
<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>
2.文件名字错误,多检查
执行数据操作问题
1.核心配置文件中没有注册资源文件列如:UserMapper.xml
<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace=绑定一个指定的Dao/Mapper接口-->
<mapper namespace="com.jirong.dao.UserMapper">
<select id="getUserList" resultType="com.jirong.pojo.User">
select * from mybatis.user ;
-- select * from USER
</select>
</mapper>
注册代码
<mappers>
<mapper resource="com/jirong/dao/UserMapper.xml"/>
</mappers>
2.Invalid bound statement (not found)出现原因和解决方法
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.jirong.dao.UserMapper.getUserList
可以看这个链接
还没解决可能犯了和本人一样的错
<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace=绑定一个指定的Dao/Mapper接口-->
<mapper namespace="com.jirong.dao.UserMapper">
<select id="getUserList()" resultType="com.jirong.pojo.User">
select * from mybatis.user ;
-- select * from USER
</select>
</mapper>
id="getUserList()"给方法调用加上了();