一、知识要点

  1. 什么是MyBatis?
    (1)MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的 JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射, 将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录。
  2. ORM工具的基本思想
    (1)无论是Hibernate还是MyBatis,你会发现它们的共同点:

从配置文件(通常是XML配置文件)得到SQL会话工厂对象。
由SQL会话工厂对象产生SQL会话对象。
利用SQL会话对象完成对数据的增删改查和事务提交等。
在用完之后关闭SQL会话对象。
在Java对象和数据库之间有做映射的XML配置文件
3. 项目3

二、实例项目步骤

创建项目



在pom文件里添加相关的文件


附上相关的代码:<?xml version="1.0" encoding="UTF-8"?>

4.0.0

<groupId>net.hw.mybatis</groupId>
<artifactId>MyBatisDemo</artifactId>
<version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.40</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>
</dependencies>

点击刷新按钮

查看下载到本地的jar包


打开Maven Repository网


在搜索框里输入待查的jar包名



将红框里的依赖元素复制到pom文件里的元素里

创建与用户表对应的用户实体类 - User



代码附上:

public class User {
private int id;
private String name;
private int age;
private String address;

public int getId() {return id;
}public void setId(int id) {this.id = id;
}public String getName() {return name;
}public void setName(String name) {this.name = name;
}public int getAge() {return age;
}public void setAge(int age) {this.age = age;
}public String getAddress() {return address;
}public void setAddress(String address) {this.address = address;
}@Override
public String toString() {return "User{" +"id=" + id +", name='" + name + '\'' +", age=" + age +", address='" + address + '\'' +'}';
}

}

创建用户实体关系映射配置文件

在resources目录里创建mapper子目录,然后在里面创建实体关系映射配置文件 - UserMapper.xml

创建MyBatis配置文件

在resources目录里创建mybatis-config.xml


到这一步我们的mybatis-config.xml文件就键好了


附上代码:

<?xml version="1.0" encoding="UTF-8" ?>

<!--配置数据库环境-->
<environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/testdb?useSSL=false"/><property name="username" value="root"/><property name="password" value="p@ssw0rd"/></dataSource></environment>
</environments><!--配置实体关系映射器文件-->
<mappers><mapper resource="mapper/UserMapper.xml"/>
</mappers>

简要说明
mybatis-config.xml 是 MyBatis 用来建立 sessionFactory 用的,里面主要包含了数据库连接相关内容,还有 Java 类所对应的别名,比如,这个别名非常重要,在具体类的映射中,比如UserMapper.xml 中 resultType 就是对应这里的User。要保持一致。
mybatis-config.xml 里面 的是包含要映射的类的实体关系映射配置文件。
在UserMapper.xml 文件里面主要是定义各种SQL 语句,以及这些语句的参数,以及要返回的类型等。

创建日志属性文件

在resources目录里创建log4j.properties文件

创建测试类测试用户操作

1、创建测试类 - TestUserOperation
在test/java目录里创建net.hw.mybatis.bean包,然后在包里创建测试类 - TestUserOperation

运行测试方法 - testFindById()


修改testFindById()代码,再运行查看结果

运行测试方法 - testFindAll()

采用接口方式使用MyBatis

前面,我们采用SqlSession实例来直接执行已映射的SQL语句:sqlSession.selectOne( “net.lbd.mybatis.mapper.UserMapper.findById”, id); 其实还有更好更简洁的方式,使用合理描述参数和SQL语句返回值的接口(比如UserMapper.class),这样代码更简单,不容易发生字符串文字和转换的错误。

创建用户映射器接口

创建net.hw.mybatis.mapper包,然后在包里创建用户映射器接口 - UserMapper


意思就是圈出来的语句的作用是相同的,知识从图中也可以看出,第一个方法是要简单许多,所以我们平时用的时候应该是经常用到第一种方法

注意:UserMapper接口的完整路路径(包名+接口名)必须是\元素的namespace属性值 net.hw.mybatis.mapper.UserMapper,并且里面定义的方法名必须与UserMapper.xml里定义的SQL语句的id值保持一致,比如 findById、findAll。

创建测试类测试用户映射器接口

1、创建测试类 - TestUserMapper
在test/java里创建net.hw.mybatis.mapper包,然后在包里创建测试类 - TestUserMapper

附上代码:
package net.lbd.mybatis.mapper;

import net.lbd.mybatis.bean.User;
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.After;
import org.junit.Before;
import org.junit.Test;

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

/**

  • 功能:测试用户映射器接口

  • 作者:李补都

  • 日期:2021年03月06日
    */
    public class TestUserMapper {

    private SqlSession sqlSession; // SQL会话
    private UserMapper userMapper; // 用户映射器

    @Before
    public void init() {
    try {
    // 读取MyBatis配置文件作为字符输入流
    Reader reader = Resources.getResourceAsReader(“mybatis-config.xml”);
    // 基于MyBatis配置文件构建SQL会话工厂
    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
    // 利用SQL会话工厂获取SQL会话
    sqlSession = factory.openSession();
    // 利用SQL会话获取用户映射器对象
    userMapper = sqlSession.getMapper(UserMapper.class);
    // 提示用户SQL会话对象创建成功
    System.out.println(“sqlSession对象已创建。”);
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    @Test
    public void testFindById() {
    int id = 1;
    User user = userMapper.findById(id);
    if (user != null) {
    System.out.println(user);
    } else {
    System.out.println(“编号为[” + id + “]的用户未找到。”);
    }
    }

    @Test
    public void testFindAll() {
    List users = userMapper.findAll();
    users.forEach(user -> System.out.println(user));
    }

    @After
    public void destroy() {
    // 关闭SQL会话
    sqlSession.close();
    // 提示用户SQL会话对象关闭
    System.out.println(“sqlSession对象已关闭。”);
    }
    }

运行测试方法 - testFindById()

运行测试方法 - testFindAll()

整体运行

三、遇到的问题

遇到的问题很多,但是都比较小,都是一些版本小,或者是MySQL的秘密没有对,粗细导致的单词打错,我觉得比较大的问题呢是,对此门课程还不是很熟悉,所以操作起来的时候难免发一些非常低级的错误,希望能越来越熟悉!

四、学习心得

要认真上课,下来花时间认真操作,多练习!

mybatis第一讲:初探mybatis实现简单的查询相关推荐

  1. 第一讲 Matlab/Simulink入门——简单系统模型的Simulink仿真

    第一讲 Matlab/Simulink入门--简单系统模型的Simulink仿真 1.模型的数学表达式 2.建立系统模型 2.1.选择模块 2.2.参数设置 3.系统仿真 1.模型的数学表达式 y = ...

  2. 【Python基础】Python 3 Tutorial 专栏第一讲:Python的简单操作、数值运算、字符串、原位操作等...

    整理|Vincent 编辑|吴嘤嘤 今天开始,我们正式迈入Python 3 Tutorial 专栏第一讲的学习. 本讲目录: ·你的第一个程序 ·简单操作 ·浮点数 ·其他数值运算 ·字符串 ·简单输 ...

  3. python两个乘号_Python小白入门:第一讲||变量和简单数据类型

    在第一讲中,你将学习: 如何使用变量: 如何创建描述性变量名以及如何消除名称错误和语法错误: 字符串是什么,以及如何使用小写.大写和首字母大写方式显示字符串: 使用空白来显示整洁的输出,以及如何剔除字 ...

  4. MySQL第一讲-mysql的基本框架和查询命令流程

    MYSQL的结构 MySQL 的基本架构示意图 总体来说,MySQL 可以分为 Server 层和存储引擎层两部分. Server 层包括 连接器.查询缓存.分析器.优化器.执行器等, 涵盖 MySQ ...

  5. 斯坦福大学CS520知识图谱系列课程学习笔记:第一讲什么是知识图谱

    随着知识图谱在人工智能各个领域的广泛使用,知识图谱受到越来越多AI研究人员的关注和学习,已经成为人工智能迈向认知系统的关键技术之一.之前,斯坦福大学的面向计算机视觉的CS231n和面向自然语言处理的C ...

  6. MyBatis框架学习笔记01:初探MyBatis实现简单查询

    文章目录 一.什么是MyBatis (一)MyBatis概述 (二)ORM工具的基本思想 二.创建数据库与表 1.在Navicat里创建MySQL数据库testdb 2.创建用户表 - t_user ...

  7. MyBatis第一天

    MyBatis第一天 学习目标 能够了解什么是框架 掌握Mybatis框架开发快速入门 掌握Mybatis框架的基本CRUD操作 掌握SqlMapConfig.xml配置文件 掌握Mybatis的pa ...

  8. MyBatis使用心得(一)--- 简单介绍

    2019独角兽企业重金招聘Python工程师标准>>> Mybatis的前身是iBatis,iBatis原本就是apache的一个开源项目,2010年该项目有apache迁移到了go ...

  9. 第一:Java+MyBatis(快速入门)

    MyBatis 简介 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为 ...

最新文章

  1. 对称加密算法DES,3重DES,TDEA,Blowfish,RC5,IDEA,AES。
  2. 双轮摩托车模安装测试
  3. oracle加并行变慢,并行设置不当导致数据处理速度变慢
  4. 32位mysql安装包_《MySQL 入门教程》第 02 篇 MySQL 安装
  5. 11.2.0.2 HAIP
  6. python安装方法3.8.2_Linux安装Python3.8.1的教程详解
  7. dp 与px互相转换
  8. CentOS6.5下用yum安装 git .
  9. Intelij IDEA 常用快捷键
  10. Linux命令:mkdir
  11. jQuery progression 表单进度
  12. Exynos4412 裸机开发—— 流水灯
  13. ASP.NET 2.0中CSS失效的问题总结
  14. yolo如何降低loss_你一定从未看过如此通俗易懂的YOLO系列(从v1到v5)模型解读 (上)...
  15. 新电脑到手要干的事情
  16. 富士康员工涉嫌盗卖 iPhone 零件遭调查;风行网接手暴风;IntelliJ IDEA 2019.3.1 发布| 极客头条...
  17. gdb 初步学习记录
  18. python3.9性能提升_Python 3.9 性能优化:更快的 list()、dict() 和 range() 等内置类型-阿里云开发者社区...
  19. cc2530设计性实验代码七
  20. 假如时光倒流,我会这么学习Java 【转载】

热门文章

  1. 关于Linux下kernel.shmmax的设置问题
  2. visual studio 重命名项目和程序集名称
  3. 电脑开机进入不了XP界面
  4. 【控制】《多智能体系统一致性与复杂网络同步控制》郭凌老师-第8章-Lurie 型动态网络自适应牵制控制
  5. 4.4 Triplet 损失-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  6. 2.16 关于 Python Numpy 的说明-深度学习-Stanford吴恩达教授
  7. 1.7 程序示例--多项式回归-机器学习笔记-斯坦福吴恩达教授
  8. 整理照片,python批量修改名称
  9. 【FPGA教程案例1】基于FPGA的串行FIR滤波器设计与实现
  10. 一个可以拖拽的异步按需加载树