MyBatis学习(二) --------- MyBatis 框架快速入门

目录

  • 一、入门案例
    • 1. 下载MyBatis
    • 2. 创建数据库表
    • 3. 创建 Maven 项目
    • 4. 添加 Maven 坐标
    • 5. 加入 Maven 插件
    • 6. 编写 Student 实体类
    • 7. 创建 Dao 接口 StudentDao
    • 8. 编写 Dao 接口 Mapper 映射文件 StudentDao.xml
    • 9. 创建 MyBatis 主配置文件
    • 10. 创建测试类 MyBatisTest
    • 11. 配置日志功能
  • 二、基本的CURD
    • 1. insert 插入操作
    • 2. update 更新操作
    • 3. delete 删除操作
  • 三、MyBatis对象分析
  • 四、创建并使用 MyBatisUtil 工具类
    • 1. 创建
    • 2. 使用
  • 五、MyBatis 使用传统 Dao 开发方式
    • 使用传统 Dao 开发方式的缺点


一、入门案例

1. 下载MyBatis

MyBatis 是 GitHub 中一个开源项目,要下载 MyBatis 文件,首先百度搜索 GitHub 官网并点击打开
MyBatis学习(二) --------- MyBatis 框架快速入门_第1张图片
打开之后界面如下,用左上角的搜索框,输入 MyBatis 进行搜索
MyBatis学习(二) --------- MyBatis 框架快速入门_第2张图片
点击箭头所指的链接
MyBatis学习(二) --------- MyBatis 框架快速入门_第3张图片
打开之后,拉到最下方,有一个 download latest ,点击打开。
MyBatis学习(二) --------- MyBatis 框架快速入门_第4张图片
下载最新版本的压缩(zip)文件
MyBatis学习(二) --------- MyBatis 框架快速入门_第5张图片
下载完之后,解压 mybatis.zip 文件到常用目录下,以备使用
MyBatis学习(二) --------- MyBatis 框架快速入门_第6张图片

2. 创建数据库表

打开 Navicat,在鼠标右键点击连接,点击新建数据库,创建如下图所示数据库
MyBatis学习(二) --------- MyBatis 框架快速入门_第7张图片
创建完数据库,鼠标右键单击表这个目录,点击设计表,为表设计如下4个字段,并令id为主键
MyBatis学习(二) --------- MyBatis 框架快速入门_第8张图片
设计完表后,点击保存,令其名称为student,并为此表添加两个数据
MyBatis学习(二) --------- MyBatis 框架快速入门_第9张图片

3. 创建 Maven 项目

点击New —> Project —> Maven 由于我们第一个Maven项目不是web项目,直接用qucikstart这个模板创建就行
MyBatis学习(二) --------- MyBatis 框架快速入门_第10张图片
点击 next 更改项目名和项目坐标,如下图所示
MyBatis学习(二) --------- MyBatis 框架快速入门_第11张图片
更改完之后点击 next ,为此项目配置本地 Maven 和 重新设定本地仓库的地址
MyBatis学习(二) --------- MyBatis 框架快速入门_第12张图片
配置好之后,点击 Finish。开始项目的构建,构建过程可能时间较长,可以为Maven 配置阿里云镜像减少构建时间
MyBatis学习(二) --------- MyBatis 框架快速入门_第13张图片
项目结构如下,IDEA默认创建了App与AppTest类文件,在此我们用不到,把他们删掉即可。
MyBatis学习(二) --------- MyBatis 框架快速入门_第14张图片

4. 添加 Maven 坐标

在pom.xml文件中,添加所要用到的mybatis和mysql-connector依赖,如果报红,点击右边的reload按钮刷新即可
MyBatis学习(二) --------- MyBatis 框架快速入门_第15张图片
添加的依赖代码如下

 <dependency>
      <groupId>org.mybatisgroupId>
      <artifactId>mybatisartifactId>
      <version>3.5.1version>
 dependency>
 <dependency>
      <groupId>mysqlgroupId>
      <artifactId>mysql-connector-javaartifactId>
      <version>8.0.25version>
dependency>

5. 加入 Maven 插件

添加如下图所示代码,此段代码的作用是在编译时能够扫描到main目录下的所有配置文件
MyBatis学习(二) --------- MyBatis 框架快速入门_第16张图片
扫描插件代码如下

 <resources>
      <resource>
        <directory>src/main/javadirectory>
        <includes>
          <include>**/*.xmlinclude>
          <include>**/*.propertiesinclude>
        includes>
      resource>

      <resource>
        <directory>src/main/resourcesdirectory>
        <includes>
          <include>**/*.xmlinclude>
          <include>**/*.propertiesinclude>
        includes>
      resource>
 resources>

6. 编写 Student 实体类

在domain包下创建Student实体类,作为student表结构的映射,成员变量与表中字段保持一致,生成构造方法及setter和getter方法。
MyBatis学习(二) --------- MyBatis 框架快速入门_第17张图片

代码如下

package com.fancy.domain;

public class Student {
     private  Integer id;
     private  String name;
     private  String email;
     private  Integer age;

    public Student() {
    }

    public Student(Integer id, String name, String email, Integer age) {
        this.id = id;
        this.name = name;
        this.email = email;
        this.age = 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 String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public Integer getAge() {
        return age;
    }

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

7. 创建 Dao 接口 StudentDao

在dao包下创建StudentDao接口,用以完成对于对表的增删改查操作,在此我们先写一个实现查询功能的抽象方法,返回值为List
MyBatis学习(二) --------- MyBatis 框架快速入门_第18张图片
代码如下

package com.fancy.dao;

import com.fancy.domain.Student;

import java.util.List;

public interface StudentDao {
     List<Student> selectStudents();
}

8. 编写 Dao 接口 Mapper 映射文件 StudentDao.xml

Mapper 映射文件又叫 sql映射文件,是用来写 sql 语句的,mybatis会执行其中的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="">
</mapper>

1.指定约束文件

<?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">
  • mybatis-3-mapper.dtd 是约束文件名称、拓展名是dtd

2.约束文件作用

  • 限制检查在当前文件中出现的标签,属性必须符合mybatis的要求

3.mapper当前文件的根标签,是必须存在的

  • namespace :命名空间,其是唯一值,可以是定义的字符串,要求用dao接口的权限定名称
    4.在当前文件中,可以使用特定的标签,表示数据库的特定操作