框架搭建的流程
1. 导入jar
2. 准备属性文件和配置文件
3. 编写数据库的表和类
4. 为类编写一个XxxMapper接口
5. 编写接口对应的映射文件XxxMapper.xml
6. 根据接口的方法, 在映射文件中编写SQL
7. 编写测试类(使用接口代理方式来获取接口的实现类对象)
接口 对象 = sqlSession.getMapper(接口.class);
对象.方法() 内部会通过Mybatis框架自动完成SQL的CURD及结果封装的所有操作

使用流程
1. 根据表创建实体类
2. 创建接口及映射文件(4个绑定) SQL
3. 映射文件需要在mybatis-config.xml中配置<mapper resource="">

# Mybatis Pool Config
pool.driverClass=com.mysql.cj.jdbc.Driver
pool.url=jdbc:mysql://localhost:3306/xiaocheng?useSSL=false&characterEncoding=UTF8&serverTimeZone=UTC
pool.user=root
pool.password=root

log4j.rootLogger=debug,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %l %m%n

<?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>

<!-- 1. 专用于加载外部的属性文件 -->
<properties resource="app.properties"></properties>

<!-- 2. Mybatis操作的数据库环境 -->
<environments default="dev">
<environment id="dev">
<transactionManager type="JDBC"/> <!--事务管理器: 采用JDBC默认事务 -->
<dataSource type="POOLED"> <!-- Mybatis内置了一个数据库的连接池 -->
<property name="driver" value="${pool.driverClass}"/>
<property name="url" value="${pool.url}"/>
<property name="username" value="${pool.user}"/>
<property name="password" value="${pool.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper class="mapper.EmployeeMapper"/>
</mappers>
</configuration>

public class Employee implements Serializable {/**
*
*/
private static final long serialVersionUID = 1L;
private Integer id; // 编号
private String name; // 姓名
private String tno; // 工号
private String gender; // 性别
private String title; // 职称
private Integer managerId; // 直属领导编号
private Integer deptId; // 直属部门编号

无参

get,set,toString}

public interface EmployeeMapper {
/**
* 功能 : 通过id来查询员工对象
* @param id 员工编号
* @return 单个员工对象
*/
public Employee findById(int id);
}

<?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="mapper.EmployeeMapper">
<resultMap type="entity.Employee" id="baseMap">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="tno" property="tno"/>
<result column="gender" property="gender"/>
<result column="title" property="title"/>
<result column="managerId" property="managerId"/>
<result column="layout" property="layout"/>
<result column="deptId" property="deptId"/>
</resultMap>
<!-- 1. public Employee findById(int id); -->
<select id="findById" parameterType="int" resultType="entity.Employee">
SELECT * FROM t_emp WHERE id=#{value}
</select>
</mapper>

package util;

import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

/**
* 封装了Mybatis工厂的加载过程
* 功能 : 可以提供一个SqlSession 【数据库连接对象】
*/
public class DBUtil {

private static SqlSessionFactory factory;

static {
//1.创建一个工厂的建造者【使用了建造者设计模式】
SqlSessionFactoryBuilder factoryBuilder = new SqlSessionFactoryBuilder();
//2. 通过建造者来创建一个Mybatis的工厂【mybatis-config.xml 就是创建的图纸】
try(InputStream ins = Resources.getResourceAsStream("mybatis-config.xml");) {
factory = factoryBuilder.build(ins);
} catch (Exception e) {
}
}

/**
* 这种方式的SqlSession默认为手动提交【事务场景使用】
* @return
*/
public static SqlSession openSqlSession() {
return openSqlSession(false); // 本质 : conn.setAutoCommit(false)
}

/**
* 这种方式的SqlSession可以设置为手动提交,还可以设置为自动提交
* @param flag true【自动提交的】 false【手动提交】
* @return
*/
public static SqlSession openSqlSession(boolean flag) {
return factory.openSession(flag);
}
}

public class EmployeeTest {
@Test
public void testFindById() {
SqlSession sqlSession = DBUtil.openSqlSession(true);
EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);
Employee emp = mapper.findById(11);
System.out.println(emp);
}
}

Mybatis最终搭建的更多相关文章

  1. SpringMVC+Mybatis框架搭建

    一.新建javaweb项目,并建好相应的包结构 二.添加项目jar到lib目录下 三.在config包中新建配置文件 sping-mvc.xml,内容如下: <?xml version=&quo ...

  2. mybatis框架搭建学习初步

    mybatis框架搭建步骤:1. 拷贝jar到lib目录下,而且添加到工程中2. 创建mybatis-config.xml文件,配置数据库连接信息 <environments default=& ...

  3. mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(附demo和搭建过程遇到的问题解决方法)

    文章介绍结构一览 一.使用maven创建web项目 1.新建maven项目 2.修改jre版本 3.修改Project Facts,生成WebContent文件夾 4.将WebContent下的两个文 ...

  4. mybatis的搭建和注入spring的方式

    mybatis实际上是一个更多关注sql语句的框架,他的出现是想让开发者更简单的去操作数据库. 与hibernate相比较,hibernate更多的是去sql化,虽然hibernate也可以本地sql ...

  5. Spring+Mybatis+Mysql搭建分布式数据库访问框架

    一.前言 用Java开发企业应用软件, 经常会采用Spring+MyBatis+Mysql搭建数据库框架.如果数据量很大,一个MYSQL库存储数据访问效率很低,往往会采用分库存储管理的方式.本文讲述如 ...

  6. springmvc+mybatis环境搭建

    1.spring+mybatis 环境搭建: A.配置jdbc和dbcp数据源:注意版本com.mysql.cj.jdbc.Driver B.配置sessionfactory,绑定dbcp及配置map ...

  7. mybatis学习笔记(六) -- maven+spring+mybatis从零开始搭建整合详细过程(下)

    继续 mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(上) 五.使用监听器启动Spring容器 1.修改pom.xml文件,添加Spring-we ...

  8. MyBatis -01- 初识 MyBatis + MyBatis 环境搭建

    MyBatis -01- 初识 MyBatis + MyBatis 环境搭建 MyBatis 本是 apache 的一个开源项目 iBatis(iBATIS = "internet" ...

  9. MyBatis之MyBatis环境搭建

    MyBatis之MyBatis环境搭建 一.MyBatis开发环境搭建 1.引入Jar包 ①MyBatis mybatis-3.4.1.jar ant-1.9.6.jar ant-launcher-1 ...

随机推荐

  1. 使用 DD 命令制作 USB 启动盘

    Windows 下有很多很好用的 USB 启动盘制作工具,比如 Rufus,但是 MacOS 下这个类型的工具就少了很多,这里记录下在 MacOS 中用 DD 命令制作 Linux USB 启动盘的操 ...

  2. Android Studio 报错:你的主机中的软件中止了一个已建立的连接

    •解决方案 关闭电脑的移动热点 关闭后,build 就不会报错了. 等 build 好了后,重新打开移动热点,再次 build 一就不会报错.

  3. JS复制文本到粘贴板,前端H5移动端点击按钮复制文本

    <span id="codeNum">FTYHDSDW</span> <span class=" code-btn" id=&qu ...

  4. java面试-内存分配与回收策略

    1.对象优先在Eden分配 -Xms20M -Xmx20M java堆的大小20M -Xmn10M 新生代10M 老年代10M -XX:SurvivorRatio=8 新生代Eden与一个Surviv ...

  5. 201871030114-蒋鑫 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    项目 内容 课程班级博客链接☛ 班级博客 这个作业要求链接☛ 作业要求 我的课程学习目标☛ 1. 体验软件项目开发中的两人合作,练习结对编程(Pair programming).2. 掌握Github ...

  6. matlab mashgrid 函数

    meshgrid 有三种语法,用来生成三维网格矩阵或二维网格矩阵 [X,Y] = meshgrid(x,y) , x和y 都是一维数组,如x=[1:3]; y= [4:5]; 则生成的 X 和 Y 都 ...

  7. GoF设计模式合集

    1 概述 这篇文章是对GoF23种设计模式+1种非GoF模式的合集,由笔者自己的笔记整理而来,每个模式都详细描述了步骤,角色等,以及使用Java实现的具体的例子. 2 基础 设计模式概述 UML与面向 ...

  8. JRebel激活

    邮箱随便填,URL为 https://jrebel.qekang.com/ 加上UUID,比如 https://jrebel.qekang.com/2c0c926f-5664-4d0e-afe2-60 ...

  9. (十九)VMware Harbor 详细介绍

    一 . 简介 Harbor是VMware公司开源的企业级DockerRegistry项目,项目地址为https://github.com/vmware/harbor.其目标是帮助用户迅速搭建一个企业级 ...

  10. matlab逻辑类型

    matlab逻辑类型 matlab逻辑表达式输出:1为真,0为假. matlab关系操作符: 关系操作符 说明 < 小于 <= 小于等于 > 大于 >= 大于等于 == 等于 ...