idea利用Maven快速上手搭建MyBatis

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():

猜你喜欢

转载自blog.csdn.net/qq_34709784/article/details/108236756