maven配置
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
</dependency>
</dependencies>
LocalDateTime与maven依赖包的版本问题:
- 设置MyBatis版本为3.4.5以上,在3.4.5之前不支持LocalDateTime会报错
- mysql-connector-java包如果过小,mysql中DateTime类型的字段值映射为java的entity中的LocalDateTime的时候为报错;5.1.37版本不报错,5.1.25报错
SqlMapConfig主配置文件
<?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>
<properties resource="dbConfig.properties"/>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="aggressiveLazyLoading" value="false"/>
<setting name="cacheEnabled" value="true"/>
</settings>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/jarvis/dao/StudentMapper.xml" /> xml映射方式
<mapper class="com.jarvis.dao.StudentMapper" /> 注解映射方式
</mappers>
</configuration>
dbConfig.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://192.168.72.141:3306/ssm?useUnicode=true&characterEncoding=UTF-8
username=root
password=123456
XXXMapper.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">
<mapper namespace="com.jarvis.dao.XXXMapper">
<cache/>
</mapper>
测试代码
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(inputStream);
SqlSession session = factory.openSession(true);
注:如果是factory.openSession()则不会自动提交,使用openSession.commit()手动提交
IUserDao userDao = session.getMapper(IUserDao.class);
List<User> userList = userDao.findAll();
for(User user:userList){
System.out.println(user);
}
session.close();
inputStream.close();