1.创建Maven项目,并配置pom.xml
<dependencies>
<!-- 添加MyBatis框架3.4.6版本 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version> <!-- 版本号视情况修改 -->
</dependency>
<!-- 添加MySql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>
</dependencies>
2.创建myBatis-config.xml配置MyBatis
<?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/sam?characterEncoding=utf-8" /> <!-- 连接字符串 -->
<property name="username" value="root" /> <!-- 用户名 -->
<property name="password" value="" /> <!-- 密码 -->
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="DeptMapper.xml" /> <!-- 映射SQL语句的XML文件 -->
</mappers>
</configuration>
3.创建myBatis-config.xml映射DeptMapper.xml SQL语句
<?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="Dept">
<!-- 插入单个部门信息 -->
<insert id="InsertDept">
INSERT INTO DEPT (DNAME,LOC)
VALUES (#{DName},#{Loc})
</insert>
</mapper>
4、创建实体类
package org.sang.entity;
/**
* @author: wangxiaobo
* @create: 2020-08-25 22:51
**/
public class Dept {
//部门名称
private String DName;
//部门位置
private String Loc;
public String getDName() {
return DName;
}
public void setDName(String dName) {
DName = dName;
}
public String getLoc() {
return Loc;
}
public void setLoc(String loc) {
Loc = loc;
}
5、创建Main函数
package org.sang.chenyanbin;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.sang.entity.Dept;
import java.io.IOException;
import java.io.InputStream;
/**
* @author: wangxiaobo
* @create: 2020-08-25 22:52
**/
public class TestMain {
public static void main(String[] args) throws IOException {
//创建实体类
Dept dept = new Dept ();
dept.setDName ("上海事业部");
dept.setLoc ("上海1");
//加载XML文件
InputStream is = Resources.getResourceAsStream ("myBatis-config.xml");//加载MyBatis的配置文件
//初始化SqlSessionFactory
SqlSessionFactory factory = new SqlSessionFactoryBuilder ().build (is);
SqlSession session = factory.openSession ();
session.insert("InsertDept", dept);
session.commit ();
session.close ();
}
6.MyBatis框架执行流程解析
- 将sql语句和数据库配置信息保存在配置文件
- 在MyBatis运行时,将配置信息存储Configuration对象
- 在创建SqlSession对象,提供属性
- Configuration对象
- dirty:true->sql语句执行完毕后,可以事务提交;false->sql语句执行发送错误,事务进行回滚
- Executor执行器对象:创建Statement对象,在创建过程中依靠MapperStatement对象将赋值内容与sql占位符进行绑定处理
- SqlSession.commit():此时根据dirty属性绝对提交和回滚
- SqlSession.close():