MyBatis学习笔记

MyBatis学习笔记

MyBatis绪论

功能:访问数据库

相当于增强版 JDBC

官网:mybatis – MyBatis 3 | 简介

MyBatis环境

JDK 1.8
MySQL 5.7 / 8.0(经典!)
maven 3.6+
IDEA

MyBatis前序

JDBC、MySQL、Java基础、Maven、Junit

MyBatis简介

什么是MyBatis

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。(定义来源官方文档)

持久层框架

如何获得MyBatis

maven仓库
GitHub

持久化与持久层
01 持久化

数据持久化
持久化就是将程序的数据在持久状态和瞬时状态转化的过程
内存:断电即失
数据库(jdbc)、IO文件持久化
生活:冷藏、罐头
为什么需要持久化?
有一些对象不能丢失
内存成本高

02 持久层

列举:Dao层,Service层,Controller层…

  • 完成持久化工作的代码块
  • 层的界限十分明显
为什么需要Mybatis?

帮助程序员将数据存入到数据库中;方便;简化、框架、自动化

搭建Mybatis开发环境

基本步骤

  • 1、创建数据库和数据表
    • students:id、name、、
      
  • 2、maven导入mybatis依赖和mysql依赖
  • 3、创建实体类,Student
    • 保存表中的一行数据
  • 4、创建持久层的dao接口
    • 定义操作数据库的方法
  • 5、创建mybatis使用的配置文件
    • sql映射文件:写sql语句用,mybatis会执行这些sql

      • 一般一个表一个sql映射文件
      • 这个文件是xml文件
      • 写在接口所在的目录中
      • 文件的名称和接口保持一致
    • 映射文件解析

      • 指定约束文件:文件头

      • 约束文件作用:限制和检查当前文件中出现的标签和属性必须符合mybatis要求

      • mapper是当前文件的根标签(必须的)

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

        • <select> 表示执行查询
          
        • <update> 表示更新数据库的操作,就是在<update>标签中,写的是update sql语句
          
  • 6、创建mybatis的主配置文件
    • 一个项目中只有一个主配置文件
      • 主配置文件提供了数据库的连接信息和sql映射文件的位置信息
  • 7、创建使用mybatis的类
    • 通过mybatis访问数据库

第一个Mybatis程序

01 准备数据库

02 创建实体类

  • 推荐和表名一样,容易记忆

  • 定义属性,目前要求是属性名和列名一样

  • public class Student{
         
        private Integer id;
        。。。
    }
    

03 创建dao接口

  • 接口操作student表
  • 功能
    • 查询表的所有数据 ==> 集合 ==> 对象

04 写sql映射文件

相关推荐

  1. MyBatis学习笔记

    2024-01-27 19:34:01       38 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-27 19:34:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-27 19:34:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-27 19:34:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-27 19:34:01       18 阅读

热门阅读

  1. Vue3生命周期 VS Vue2生命周期(小记)

    2024-01-27 19:34:01       38 阅读
  2. 【leetcode100-063到068】【二分】六题合集

    2024-01-27 19:34:01       31 阅读
  3. 【C语言】(4)数组

    2024-01-27 19:34:01       32 阅读
  4. MySQL数据库备份的相关命令-运维面试常问

    2024-01-27 19:34:01       29 阅读
  5. SQL 优化建议

    2024-01-27 19:34:01       29 阅读
  6. MySQL运维实战(4.8) SQL_MODE之NO_ENGINE_SUBSTITUTION

    2024-01-27 19:34:01       30 阅读
  7. 使用scyllaDb 或者cassandra存储聊天记录

    2024-01-27 19:34:01       32 阅读
  8. 天梯赛 L3-020 至多删三个字符

    2024-01-27 19:34:01       36 阅读
  9. 《动手学深度学习(PyTorch版)》笔记4.2 4.3

    2024-01-27 19:34:01       34 阅读