MyBatis-01 踩坑日记
首先整个项目的流程如下
plus:idea读错要从后往前读
Bug:
1.防止资源导出失败的代码,此代码在pom.xml文件中,作用是解决项目无法正常生成target文件的情况
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
2.Idea有时候会不能读取maven项目导入的包,勾选上delegate IDE build..这个选项
3.此代码解决File encoding has not been set报错,pom.xml文件中
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
4.不绑定此map会有bind报错 注意是/不是. 此map放在mybatis-config.xml文件的configuration标签中,用于绑定每个mapper的地址
<mappers>
<mapper resource="com/wu/dao/UserMapper.xml"/>
</mappers>
5.在pom.xml文件中用于解决 fail to execute org.apache.maven.plugins:maven-surefire-plugin:2.12.4
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.2</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
6.可能会用到的资源
mapper.xml的头部信息
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
mybatis-config配置信息
<?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=true&useUnicode=true&characterEncoding=UTF-8" />
<property name="username" value="root" />
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!--不绑定此map会有bind报错 注意是/不是.-->
<mappers>
<mapper resource="com/wu/dao/UserMapper.xml"/>
</mappers>
</configuration>
mybatis的工具类
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
//获取sqlsessionfactory对象
String resource="mybatis-config.xml";
InputStream inputStream= null;
try {
inputStream = Resources.getResourceAsStream(resource);
} catch (IOException e) {
e.printStackTrace();
}
sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
}
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
}
sqlSessionBuilder,sqlSessionFactory,sqlSession的关系