史上最简单的 MyBatis 教程(一)

1 简介

MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架,其几乎消除了所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。MyBatis 应用程序大都使用 SqlSessionFactory 实例,SqlSessionFactory 实例可以通过 SqlSessionFactoryBuilder 获得,而 SqlSessionFactoryBuilder 则可以从一个 XML 配置文件或者一个预定义的配置类的实例获得。

2 构建步骤

想要熟练的使用 MyBatis 框架,就必须明确其构建步骤,在此,咱们给出构建 MyBatis 框架的详细步骤,以供大家参考:

  • 创建一个 Java Web 项目;
  • 导入 MyBatis 框架的 jar 包;
  • 创建核心配置文件 sqlMapConfig.xml ;
  • 创建映射文件 UersMapper.xml;
  • 创建测试类。

其中,MyBatis 框架的 jar 包可以通过“MyBatis 之 各种依赖包 ”进行下载,而且里面包含了大多数常用的配置文件,值得大家get。此外,还有一点需要大家注意,那就是 MyBatis 框架用于操作数据,支持 SQL 语句,因此在体验 MyBatis 框架的时候,需要使用数据库配合进行测试。在本篇博文中,咱们在数据库中创建了一个名为“person”的表,并通过 MyBatis 框架对其进行一系列常见的操作(增、删、改、查等)。

3 体验 MyBatis 框架

首先,给出项目结构图:

项目结构图

第一步:创建 Java Web 项目,导入 jar 包

mybatis-3.2.2.jar                       核心jar
mysql-connector-java-5.1.10-bin.jar     数据库访问
asm-3.3.1.jar                           增强类
cglib-2.2.2.jar                         动态代理
commons-logging-1.1.1.jar               通用日志
javassist-3.17.1-GA.jar                 java助手
log4j-1.2.17.jar                        日志
slf4j-api-1.7.5.jar                     日志
slf4j-log4j12-1.7.5.jar                 日志

第二步:创建核心配置文件 sqlMapConfig.xml

<?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="test">
        <environment id="test">
            <transactionManager type="JDBC"></transactionManager>    <!-- 事务管理类型:JDBC、MANAGED -->
            <dataSource type="POOLED">    <!-- 数据源类型:POOLED、UNPOOLED、JNDI -->
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8" />
                <property name="username" value="root" />
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>

    <!-- 加载映射文件 mapper -->
    <mappers>
        <!-- 路径用 斜线(/) 分割,而不是用 点(.) -->
        <mapper resource="yeepay/payplus/mapper/UserMapper.xml"></mapper>
    </mappers>
</configuration>

第三步:创建映射文件 UersMapper.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="yeepay.payplus/mapper.UserMapper">   <!-- 命名空间,名字可以随意起,只要不冲突即可 -->
    <!-- 对象映射,可以不写 -->
    <!-- 查询功能,resultType 设置返回值类型 -->
    <select id="findAll" resultType="yeepay.payplus.Person">  <!-- 书写 SQL 语句 -->
        SELECT * FROM Person
    </select>
</mapper>

第四步:创建实体类(Person)

package yeepay.payplus;

/**
 * Created by 维C果糖 on 2017/2/1.
 */
public class Person {
    private Integer id;
    private String name;
    private Integer age;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

第五步:创建测试类(CeshiMyBatis)

package yeepay.payplus.test;

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.junit.Test;
import yeepay.payplus.Person;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

/**
 * Created by 维C果糖 on 2017/2/1.
 */
public class CeshiMyBatis {
    @Test
    public void ceshi() throws IOException {
        /**
         *  1、获得 SqlSessionFactory
         *  2、获得 SqlSession
         *  3、调用在 mapper 文件中配置的 SQL 语句
         */
        String resource = "sqlMapConfig.xml";           // 定位核心配置文件
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);    // 创建 SqlSessionFactory

        SqlSession sqlSession = sqlSessionFactory.openSession();    // 获取到 SqlSession

        // 调用 mapper 中的方法:命名空间 + id
        List<Person> personList = sqlSession.selectList("yeepay.payplus/mapper.UserMapper.findAll");

        for (Person p : personList){
            System.out.println(p);
        }
    }
}

在完成以上步骤后,咱们可以通过 JUnit 来测试框架是否搭建成功,具体使用 JUnit 进行测试的方法,可以通过阅读“基于 JUnit 单元测试的原理及示例”来了解更为详细的内容。


———— ☆☆☆ —— 返回 -> 史上最简单的 MyBatis 教程 <- 目录 —— ☆☆☆ ————

<p> 本课程适合有JAVA数据库基础人员。 </p> <p> 本课程使用Eclipse和<span style="font-size:13.3333px;">IntelliJ IDEA两种开发工具,详细讲解了MyBatis各种语法,并且讲解了MyBatis逆向工程和MyBatis两种常用插件:MyBatis Plus和通用Mapper。</span> </p> <p> <span style="font-size:13.3333px;">本课程从理论和实际案例两方面充分讲解了MyBatis各种技术细节,和应用场景,并且以绘图方式讲解了各种MyBatis中较难技术点。</span> </p> <p> <span style="font-size:13.3333px;">相信可以通过本课程学习,读者能够掌握MyBatis学习过程中各种技巧和实际案例。</span> </p> <p> <span style="font-size:13.3333px;">本课程中设计大致技术点,如下所示。</span> </p> <p>       1.Eclipse、IntelliJ IDEA环境下开发MyBatis </p> <span></span>      2.MyBatis多种方式CRUD<br />       3.MyBatis配置文件详解<br />       4.MyBatis映射文件详解<br />       5.使用MyBatis调用存储过程<br />       6.动态SQL<br />       7.关联查询<br />       8.延迟加载<br />       9.整合级、二级缓存<br />       10.逆向工程<br />       11.事务操作<br />       12.MyBatis处理多个参数问题<br />       13.鉴别器和别名<br />       14.各种方式模糊查询<br />       15.MyBatis核心源码分析<br />       16.MyBatis拦截器<br />       17.MyBatis批量更新操作<br />       18.PageHelper<br />       19.MyBatis Plus详解<br />       20.通用Mapper详解<br /><p>    希望大家可以通过本课程学习,深入掌握MyBatis及其各种插件用法,从而提高对数据操作效率 </p> <p> <br /></p>
相关推荐
<p style="color:#424242;font-size:14px;"> 全程实战讲解,附<strong>源码 数据库脚本</strong>和<strong>项目素材</strong> </p> <p style="color:#424242;font-size:14px;"> <strong>核心技术</strong>:SpringBoot+SpringMvc+Spring+MyBatis+Mysql+Thymeleaf+Jquery+Ajax+HTML+CSS,使用Maven完成项目构建! </p> <p style="color:#424242;font-size:14px;"> <br /></p> <p style="color:#424242;font-size:14px;"> <strong>项目前台点餐系统部分截图:</strong> </p> <p style="color:#424242;font-size:14px;"> <strong><img src="https://img-bss.csdn.net/202003021001262373.png" alt="" /><br /></strong> </p> <p style="color:#424242;font-size:14px;"> <strong><br /></strong> </p> <p style="color:#424242;font-size:14px;"> <strong><img src="https://img-bss.csdn.net/202003021001389462.png" alt="" /><br /></strong> </p> <p style="color:#424242;font-size:14px;"> <strong><br /></strong> </p> <p style="color:#424242;font-size:14px;"> <strong><img src="https://img-bss.csdn.net/202003021001535188.png" alt="" /><br /></strong> </p> <p style="color:#424242;font-size:14px;"> <strong><br /></strong> </p> <p style="color:#424242;font-size:14px;"> <strong><img src="https://img-bss.csdn.net/202003021002057197.png" alt="" /><br /></strong> </p> <p style="color:#424242;font-size:14px;"> <strong><br /></strong> </p> <p style="color:#424242;font-size:14px;"> <strong><span style="font-size:16px;">项目后台管理系统部分截图:</span><br /></strong> </p> <p style="color:#424242;font-size:14px;"> <strong><img src="https://img-bss.csdn.net/202003021002198435.png" alt="" /><br /></strong> </p> <p style="color:#424242;font-size:14px;"> <strong><br /></strong> </p> <p style="color:#424242;font-size:14px;"> <strong><br /></strong> </p> <p style="color:#424242;font-size:14px;"> <strong><img src="https://img-bss.csdn.net/202003021002335651.png" alt="" /><br /></strong> </p> <p style="color:#424242;font-size:14px;"> <strong><br /></strong> </p> <p style="color:#424242;font-size:14px;"> <strong><br /></strong> </p> <p style="color:#424242;font-size:14px;"> <strong><img src="https://img-bss.csdn.net/202003021002445054.png" alt="" /><br /></strong> </p> <p style="color:#424242;font-size:14px;"> <strong><br /></strong> </p> <p style="color:#424242;font-size:14px;"> <strong><br /></strong> </p> <p style="color:#424242;font-size:14px;"> <strong><img src="https://img-bss.csdn.net/202003021002548248.png" alt="" /><br /></strong> </p> <p style="color:#424242;font-size:14px;"> <strong><br /></strong> </p> <p style="color:#424242;font-size:14px;"> <strong><br /></strong> </p> <p style="color:#424242;font-size:14px;"> <strong><img src="https://img-bss.csdn.net/202003021003138072.png" alt="" /><br /></strong> </p>
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值