目录
第二步 在pom.xml中添加 mybatis和mysql依赖
第六步 在中mybatis-config.xml配置UserMapper.xml
第一步 创建maven Java 项目并创建数据库
字段名称 | 类型 | 长度 |
---|---|---|
id | int | 11 |
name | varchar | 30 |
addr | varchar | 30 |
age | int | 10 |
第二步 在pom.xml中添加 mybatis和mysql依赖
<dependencies>
<!--添加mysql驱动程序依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
</dependency>
<!--添加mybatis依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>
</dependencies>
<build>
<!-- 添加插件 -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<!-- 添加JDK插件(版本1.8) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
第三步 添加配置文件
1.创建jdbc.properties配置文件内容
注意:每行最后不能存在空格!!!!!
database.driver=com.mysql.jdbc.Driver
database.url=jdbc:mysql://localhost:3306/[数据库名称]
database.username=root
database.password=root
2.mybatis-config.xml配置文件的内容
该配置文件重点配置为:
1) 引入jdbc.properties配置文件
2) 配置开发环境
3) 配置映射文件(此文件还未创建,暂不添加,)
<?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="jdbc.properties"/>
<!-- 配置开发环境 -->
<!-- default用来设置默认的开发环境 -->
<environments default="development">
<environment id="development">
<!-- mybatis的事务交给JDBC管理 -->
<transactionManager type="JDBC"/>
<!-- 配置数据源 (连接池) -->
<dataSource type="POOLED">
<property name="driver" value="${database.driver}"/>
<property name="url" value="${database.url}"/>
<property name="username" value="${database.username}"/>
<property name="password" value="${database.password}"/>
</dataSource>
</environment>
</environments>
</configuration>
第四步 创建pojo类
/**
*此类用于封装从数据库查询到的用户表信息
*
*/
public class User {
private int id;
private String name;
private String addr;
private int age;
//getter setter
//重写toString()方法
}
第五步 创建MyBatis映射器文件
文件路径为:在resources下创建文件夹mappers
文件名为:UserMapper.xml(如上图)
与mybatis-config.xml内配置映射文件标签<mapper>内resource配置的路径一致
<?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="userMapper">
<!-- id为该SQL的唯一标志
resultType 指定结果集要映射到哪个对象
此处配置的为第三步创建的pojo全路径,
可根据自己的创建修改
-->
<!-- 查询所有记录 -->
<select id="getUsers" resultType="com.tedu.pojo.User">
select * from user
</select>
</mapper>
第六步 在中mybatis-config.xml配置UserMapper.xml
在第三步创建的mybatis-config.xml添加如下配置
说明:此文件为mybatis映射器核心文件,用于编写sql
<!-- 配置映射文件 -->
<mappers >
<mapper resource="mappers/UserMapper.xml"/>
</mappers>
第七步 编写获取SqlSessionFactory的工具类
public class SqlSessionFactoryUtils {
private final static Class<SqlSessionFactoryUtils> LOCK = SqlSessionFactoryUtils.class;
private static SqlSessionFactory sqlSessionFactory = null;
private SqlSessionFactoryUtils(){}
/**获取SqlSessionFactory的方法*/
public static SqlSessionFactory getSqlSessionFactory() {
synchronized (LOCK) {
if(sqlSessionFactory != null) {
return sqlSessionFactory;
}
String resource = "Mybatis_Config.xml";
InputStream inputStream;
try {
//读取mybatis-config.xml配置文件
inputStream = Resources.getResourceAsStream(resource);
//通过SqlSessionFactoryBuilder的方法创建sqlSessionFactory
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
return null;
}
return sqlSessionFactory;
}
}
/**获取sqlSession对象的方法*/
public static SqlSession openSqlSession() {
if(sqlSessionFactory == null) {
getSqlSessionFactory();
}
return sqlSessionFactory.openSession();
}
}
第六步 编写测试类
/**
* mybatis测试类
* 在MyBatis中SqlSessionFactory对象是由SqlSessionFactoryBuil对象中的build()方
* 法创建的,我们只需为该方法提供一个InputStream对象的参数即可。而MyBatis还为
* 我们提供了读取配置文件的工具类Resources,该类getResourceAsStream()方法根据
* 我们提供的配置文件("mybatis-config.xml")为们返回一个InputStream对象,如下init()方法所示。
*/
public class TestMyBatis {
//声明sqlSessionFactory
SqlSessionFactory sqlSessionFactory = null;
/**Test方法执行前执行的操作 */
@Before
public void init() {
try {
//配置文件路径
String resources = "mybatis-config.xml";
//创建会话工厂
sqlSessionFactory = new SqlSessionFactoryBuilder().build(
Resources.getResourceAsStream(resources));
} catch (IOException e) {
e.printStackTrace();
}
}
/**测试获取所有用户的方法 */
@Test
public void getUsers() {
SqlSession sqlSession = null;
try {
//获取SqlSession
sqlSession = sqlSessionFactory.openSession();
List<User> users = sqlSession.selectList("userMapper.getUsers");
//遍历结果集
for (User user : users) {
log.info(user);
}
} catch (Exception e) {
e.printStackTrace();
//事务回滚
sqlSession.rollback();
}finally {
if(sqlSession != null) {
//释放资源
sqlSession.close();
}
}
}
}