Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序

文章目录

  • 1. 学习准备
    • 1.2 MyBatis 简介
    • 1.3 如何获得 MyBatis
    • 1.4 持久层
    • 1.5 持久层
    • 1.6 为什么需要 MyBatis
  • 2. 第一个 MyBatis 查询程序
    • 2.1 搭建环境
      • 2.1.1 搭建数据库
      • 2.1.2 新建项目
    • 2.2 创建一个模块
      • 2.2.2 编写 MyBatis 的核心配置文件
        • 2.2.2.2 修改配置(环境准备)(第二步)
      • 2.2.3 编写 MyBatis 工具类 (第一步)
    • 2.3 编写代码
      • 2.3.1 新建 POJO 类(第三步)
      • 2.3.2 Mapper 接口(第四步)
      • 2.3.3 配置 XML (代替接口实现类)(第五步)
        • XML 文件的一些使用技巧
        • 最终形式
    • 2.4 测试(第六步)
        • 测试规范
        • **注意点**
    • 2.5 小结

1. 学习准备


2021/11/29

环境:

  • JDK1.8 配置教程
  • MySQL 5.7
  • Maven 3.6.0 - 3.6.1
  • IDEA

回顾:

  • JDBC
  • MySQL
  • Java 基础
  • Maven
  • Junit

SSM 框架: 都是有配置文件的,最好的学习方式就是看官网文档(详细)
MyBatis 官方文档
可选择中文
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第1张图片


Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第2张图片

1.2 MyBatis 简介

  • MyBatis 是一款优秀的持久层框架
  • 它支持自定义 SQL、存储过程以及高级映射。
  • MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。
  • MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
  • MyBatis 本是 apache 的一个开源项目 iBatis, 2010年这个项目由apache software foundation 迁移到了 google code,并且改名为 MyBatis 。2013年11月迁移到 Github

1.3 如何获得 MyBatis

  • Maven 仓库
    https://mvnrepository.com/artifact/org.mybatis/mybatis/3.5.2

    
    <dependency>
        <groupId>org.mybatisgroupId>
        <artifactId>mybatisartifactId>
        <version>3.5.2version>
    dependency>
    
  • Github

1.4 持久层

数据持久化

  • 持久化就是将是程序的数据在持久状态和瞬时转化的过程
  • 内存:断电即失
  • 数据库(JDBC), io 文件持久化

为什么需要持久化:

  • 有一些对象不能让他丢掉
  • 内存太贵了

1.5 持久层

DAO 层, Service 层, Controller 层…

  • 完成持久化工作的代码块
  • 层界限十分明显

1.6 为什么需要 MyBatis

  • 帮助程序猿将数据存入到数据库中
  • 传统的 JDBC 代码太复杂了。 简化。 框架 - > 自动化
  • 优点
    • 简单易学
    • 灵活
    • SQL 和代码的分离,提高了可维护性
    • 提供映射标签,支持对象与数据库的 ORM 字段关系映射
    • 提供对象关系映射标签,支持对象关系组维护
    • 提供 XML 标签,支持编写动态 SQL

2. 第一个 MyBatis 查询程序

思路:搭建环境 --> 导入 MyBatis --> 编写代码 --> 测试

2.1 搭建环境

2.1.1 搭建数据库

Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第3张图片

2.1.2 新建项目

  1. 新建普通的 Maven 项目
    检查 Maven 位置,有时候用着用着位置就跑 C 盘去了 Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第4张图片

  2. 删除 src目录

  3. 导入依赖
    Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第5张图片
    Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第6张图片

2.2 创建一个模块

Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第7张图片
选择 Maven 项目
在这里插入图片描述


这样做的好处就是不用重新导包了
此子项目的父项目就是 Mybatis-Study
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第8张图片
此时父项目里多了一个子模块
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第9张图片

2.2.2 编写 MyBatis 的核心配置文件

官方文档Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第10张图片
连接数据库
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第11张图片


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="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
      dataSource>
    environment>
  environments>
----------------------------此处有坑-----------------------
configuration>

2.2.2.2 修改配置(环境准备)(第二步)

  1. 修改驱动
    Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第12张图片2. 修改 url

连接数据库Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第13张图片
密码:123456
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第14张图片
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第15张图片
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第16张图片
在这里插入图片描述
3. 用户名 密码
在这里插入图片描述
最终结果如下:
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第17张图片

2.2.3 编写 MyBatis 工具类 (第一步)

作用:加载资源,创建一个能创建 SQL 的对象

官方文档说明

工厂模式, 建造者模式
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第18张图片Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第19张图片


把以上读取 XML 文件的程序封装成一个工具类
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第20张图片
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第21张图片
工厂模式
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第22张图片
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第23张图片

优化代码
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第24张图片

2.3 编写代码

  • 实体类(数据库相关要有实体类)
  • 操作实体类的实现类
    • DAO 接口
    • 接口实现类(JDBC 中需要,MyBatis 中不需接口实现类)

2.3.1 新建 POJO 类(第三步)

Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第25张图片
然后看着数据库的操作把实体类建上
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第26张图片
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第27张图片

2.3.2 Mapper 接口(第四步)

Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第28张图片
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第29张图片

2.3.3 配置 XML (代替接口实现类)(第五步)

Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第30张图片
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第31张图片
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第32张图片

XML 文件的一些使用技巧

Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第33张图片
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第34张图片
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第35张图片

原来用 JDBC 实现接口时的写法 -> 对比看 MyBatis 是怎么通过 XML 文件代替的
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第36张图片

最终形式

Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第37张图片

2.4 测试(第六步)

  • junit 测试
    一个快捷导测试类的方法:
    DAO 接口里面右键,选择 go to, 再点 test, 然后 creat new test

测试规范

Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第38张图片
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第39张图片
方式一:官方推荐
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第40张图片
方式二 (了解,不推荐)
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第41张图片
对应官网
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第42张图片

注意点

报错 1:
在这里插入图片描述
MapperRegistry 是什么?
核心配置文件中注册 mappers
解决方案:
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第43张图片
报错2:
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第44张图片
解决方案:
所有的 Maven 项目以后首先配上这个
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第45张图片
主工程里先放一份(但是不一定会生效)
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第46张图片
保险起见:子项目里也放一份
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第47张图片
再次运行即生成 xml 文件
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第48张图片
同时 生成结果
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第49张图片
清理一下 Maven
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第50张图片


2.5 小结

Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第51张图片
Java 学习【框架篇(二)】MyBatis(一)第一个 MyBatis 查询程序_第52张图片
根据官方建议 可做以下优化,但是一般不这么用(因为不会产生异常,为什么要捕获呢?)
在这里插入图片描述

你可能感兴趣的:(#,框架,mybatis,java)