MyBatis 快速入门(上)

这篇具有很好参考价值的文章主要介绍了MyBatis 快速入门(上)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一. MyBatis 是什么?

MyBatis 是一款优秀的持久层框架(将电脑中的数据保存到磁盘上) , 它支持自定义 SQL , 存储过程以及高级映射. MyBatis 去除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作. MyBatis 可以通过简单的 xml 或 注解 来配置和映射原始类型 , 接口和 java POJO (plain old java objects , 普通老式 java 对象) 为数据库中的记录.

MyBatis 提供简单易用的 API 就是为了更加简单的操作和读取数据.


二. 学习 MyBatis 的意义

对应后端开发人员来说 , 程序主要由 后端程序 和 数据库组成.

JDBC 过于冗余且代码复用性很差


三. MyBatis 学习

MyBatis 学习只有两个部分:

  • 配置 MyBatis 开发环境.
  • 使用 MyBatis 模式和语法操作数据库.

四. 创建 Mybatis 查询

学习 Mybatis 之前 , 知道 Mybatis 的整个框架执行流程非常关键.

MyBatis 快速入门(上)

MyBatis 是一个 ORM 框架(Object Relation Mapping) , 即对象关系映射. 在面向对象编程中 , 该框架会将关系型数据库中的数据和对象建立映射关系 , 进而自动完成数据和对象之间的转换.

ORM 框架对数据库的映射:

  • 数据表: 映射为 “类”
  • 记录: 映射为 “对象”
  • 字段: 映射为 “属性”

也就是说 , Mybatis 可以像操作对象一样来操作数据库中的表 , 并自动实现数据和对象之间的转换.

4.1 创建数据库和表

通过 MyBatis 我们要实现的功能是 , 查询一个博客系统中所有用户的信息.

通过 MySQL 创建数据库和表 , 代码如下:

-- 创建数据库
drop database if exists mycnblog;
create database mycnblog DEFAULT CHARACTER SET utf8mb4;

-- 使用数据数据
use mycnblog;

-- 创建表[用户表]
drop table if exists  userinfo;
create table userinfo(
    id int primary key auto_increment,
    username varchar(100) not null,
    password varchar(32) not null,
    photo varchar(500) default '',
    createtime timestamp default current_timestamp,
    updatetime timestamp default current_timestamp,
    `state` int default 1
) default charset 'utf8mb4';

-- 创建文章表
drop table if exists  articleinfo;
create table articleinfo(
    id int primary key auto_increment,
    title varchar(100) not null,
    content text not null,
    createtime timestamp default current_timestamp,
    updatetime timestamp default current_timestamp,
    uid int not null,
    rcount int not null default 1,
    `state` int default 1
)default charset 'utf8mb4';

-- 创建视频表
drop table if exists videoinfo;
create table videoinfo(
  	vid int primary key,
  	`title` varchar(250),
  	`url` varchar(1000),
		createtime timestamp default current_timestamp,
		updatetime timestamp default current_timestamp,
  	uid int
)default charset 'utf8mb4';

-- 添加一个用户信息
INSERT INTO `mycnblog`.`userinfo` (`id`, `username`, `password`, `photo`, `createtime`, `updatetime`, `state`) VALUES 
(1, 'admin', 'admin', '', '2021-12-06 17:10:48', '2021-12-06 17:10:48', 1);

-- 文章添加测试数据
insert into articleinfo(title,content,uid)
    values('Java','Java正文',1);
    
-- 添加视频
insert into videoinfo(vid,title,url,uid) values(1,'java title','http://www.baidu.com',1);

4. 2 MyBatis 环境搭建

1. 添加 MyBatis 框架支持

Tips: 添加完 MyBatis 框架之后 , 还要添加需要 MySQL驱动. 这是因为 Mybatis 就像是淘宝这样的电商平台 , 需要有 MySQL 这样的商家入驻.

MyBatis 快速入门(上)

但是直接启动就会报错 , 这是因为添加的依赖只是声明了要使用数据库 , 并没有说明具体的数据库的地址 , 密码 , 用户名…

MyBatis 快速入门(上)

2. 设置 MyBatis 的配置信息
2.1 设置数据库连接的相关信息

yml 格式的配置文件 , propertise 同理.

# 数据库连接配置
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mycnblog?characterEncoding=utf8&useSSL=false
    username: root
#    password 要写自己本机 mysql 客户端的密码
    password: 111111
    driver-class-name: com.mysql.cj.jdbc.Driver
2.2 MyBatis 的xml 保存路径 和 xml 命名格式

创建 resourse/mybatis 的所有表的 xml 文件 , 意味着该目录下所有的文件后缀都为…Mapper.xml , 一种默认潜规则更加方便.

#   配置 mybatis xml 的文件路径
mybatis.mapper-locations=classpath:mybaits/*Mapper.xml

MyBatis 快速入门(上)

4.3MyBatis 模式开发

由两部分组成:

  1. interface: 提供让其他层可以注入使用的接口
  2. xml: 具体实现 sql (可以看做是上面 interface 的实现)

Mybatis 的映射器 Mapper 就像是一个代理对象 , 让 interface 中的方法声明 和 xml 中的方法实现 , 生成一个代理对象 , 然后就可以在其他层调用这个代理对象.

MyBatis 快速入门(上)

1. interface 部分

MyBatis 快速入门(上)

编写实体类 , 在 entity 目录下 , 创建一个 UserEntity 实体类 , 成员依据数据库中字段来写.

@Data //Lombok 中 @Data 注解的作用是自动生成 Java 类的 getter、setter、toString、equals、hashCode 等常用方法
public class UserEntity {
    private int id;
    private String username;
    private String password;
    private String photo;
    private LocalDateTime createtime;
    private LocalDateTime updatetime;
    private Integer state;
}

编写数据持久层 , 在 mapper 目录下创建一个 UserMapper 接口.

@Mapper 注解的作用是将一个 java 接口标记为 Mybatis 的映射器(Mapper) , 使其可以被 Mybatis 框架扫描并生成对应的实现类.

@Mapper
public interface UserMapper {
    List<UserEntity> getAll();
}
2. xml 部分

xml 是针对 interface 的实现 , 因此 xml 的命名最好和 interface 的命名一致 (更加直观)

在 resources 的 mybatis 目录下创建一个 UserMapper.xml 文件. (文件中的内容无需记忆 , 直接复制粘贴即可)

namespace 中定义了当前 xml 实现的接口是哪个?

select 标签中至少需要两个参数 , 告诉 xml 实现的方法是哪个方法 , 以及返回的数据类型是什么?

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org/xml/DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.UserMapper">
    <select id="getAll" resultType="com.example.demo.entity.UserEntity">
        select * from userinfo
    </select>
</mapper>

后续增加新的功能 , 只需在 interface 中添加新方法 , xml 中实现该方法即可.

由 mybatis 标准分层可知 , service 用来访问 mapper , controller 用来访问 service.

创建 service 层 , 将 mapper 暴露出来 , 供其他人来访问.

@Service //把类托管到 Spring
public class UserService {
    @Autowired //属性注入
    private UserMapper userMapper; // mybatis 允许把一个接口当做是一个对象 , 其中操作框架代理自动完成.

    public List<UserEntity> getAll(){
        return userMapper.getAll();
    }
}

创建 controller 层 , 访问 service.

@RequestMapping("/user")
@RestController
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping("/getAll")
    public List<UserEntity> getAll(){
        return userService.getAll();
    }
}

访问 localhost:8080/user/getAll , 结果如下:

MyBatis 快速入门(上)文章来源地址https://www.toymoban.com/news/detail-469819.html


到了这里,关于MyBatis 快速入门(上)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MyBatis--快速入门

    创建、释放频繁导致系统资源浪费 sql语句在代码中硬编码,不易维护 查询操作时,需要手动将结果集中的数据封装到实体中。插入操作同理需要手动 解决方案: 使用数据库连接池初始化连接资源 将sql语句抽取到xml配置文件中 使用反射、内省等底层技术,自动将实体与表进

    2024年02月13日
    浏览(16)
  • MyBatis 快速入门(上)

    MyBatis 是一款优秀的 持久层框架 (将电脑中的数据保存到磁盘上) , 它支持 自定义 SQL , 存储过程以及高级映射 . MyBatis 去除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作 . MyBatis 可以通过简单的 xml 或 注解 来配置和映射原始类型 , 接口和 java POJO (plain old java objects

    2024年02月07日
    浏览(17)
  • Mybatis-Plus快速入门

    目录   一、基础工程 1、创建一个数据库:mp 2、添加数据 3、创建初始工程  4、添加依赖 二、Mybatis + Mybatis-Plus 1、创建子工程:mybatis-plus-simple 2、在子工程下添加配置 2.1Mybatis实现查询User 2.1.1、编写User实体对象 2.1.2、编写UserMapper接口 2.1.3、编写UserMapper.xml文件 2.1.4、编写

    2024年02月10日
    浏览(42)
  • MyBatis基础知识和快速入门、MyBatis核心配置文件讲解

    什么是Mybatis MyBatis 是一个优秀的基于java的 持久层框架 ,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。 mybatis通过xml或注解的方式将要执行的各种 statement配置起来,并通过java对象和statement中

    2024年02月04日
    浏览(107)
  • 【Mybatis-Plus】Mybatis-Plus快速入门

    Mybatis-Plus是基于Mybatis的数据库操作组件,其实现的功能完全是Mybatis的功能拓展,不改变Mybatis的使用方式,可以兼容Mybatis的操作方式。 创建一个数据库、一个表进行基础操作: 创建一个Spring项目,项目通过Spring Initlizer创建,不导入任何依赖包,在POM.xml文件中进行依赖导入

    2024年02月07日
    浏览(47)
  • 5.2 Mybatis快速入门,轻松学会常用12种注解开发

    通过 《上文》,我们完成了 SpringBoot整合Mybatis ,那么接下来,我们就来使用Mybatis访问MySQL数据库! MyBatis的强大在于它的语句映射,它提供了 注解和XML映射 两种方式,都是为了减少我们的使用成本,屏蔽JDBC代码细节,节省代码,从而让我们更专注于SQL代码!本文主要使用

    2023年04月25日
    浏览(43)
  • Spring 整合 Mybatis -- Spring快速入门保姆级教程(四)

    为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。 (博客的参考源码可以在我主页的资源里找到,如果在学习的

    2024年02月07日
    浏览(65)
  • mybatis入门的环境搭建及快速完成CRUD(增删改查)

                                                                                           又是爱代码的一天  MyBatis 的背景可以追溯到 2002 年,当时 Clinton Begin 开发了一个名为 iBATIS 的持久化框架。iBATIS 的目标是简化 JDBC 编程,提供一种 更直观、易用 的方式来处理

    2024年02月11日
    浏览(43)
  • 我真的不想再用mybatis和其衍生框架了选择自研亦是一种解脱

    文档地址 https://xuejm.gitee.io/easy-query-doc/ GITHUB地址 https://github.com/xuejmnet/easy-query GITEE地址 https://gitee.com/xuejm/easy-query 众所邹知orm的出现让本来以sql实现的复杂繁琐功能大大简化,对于大部分程序员而言一个框架的出现是为了生产力的提升.。dbc定义了交互数据库的规范,任何数据库

    2024年02月16日
    浏览(45)
  • 从零开始快速搭建SpringBoot+Mybatis+小程序应用--微信小程序的入门和前后端的联调

    目录 项目介绍  vx小程序简介 VX开发工具介绍 列表页开发 list的编写   列表页前后端联调  信息编辑页开发 operation的编写 区域信息编辑页的联调 从0搭建后端的Springboot+mybatis框架 实现后端的业务功能 实现本地微信小程序的前端开发 前端与后端的调控 技术储备要求 1.基础的

    2024年02月10日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包