优秀持久层框架——MyBatis!

MySQL 和 MyBatis:数据库与持久层框架的完美结合 MySQL是一个开源的关系型数据库管理系统(RDBMS),广泛应用于 Web 应用程序中。高性能:MySQL 支持高效的查询和数据操作。易用性:MySQL 提供了简单易用的 SQL 接口。可扩展性:MySQL 支持大规模数据存储和高并发访问。开源免费:MySQL 是开源软件,可以免费使用。在项目中,MySQL 通常用于存储和管理应用程序的核心数据,例如用户信息、订单信息等。MyBatis是一个优秀的持久层框架,用于简化 Java 应用程序与数据库的交互。灵活性。 阅读详情

何为MyBatis

在Java程序中如果想要操作数据库,官方提供了JDBC这套API,但从开发效率而言,直接使用原生的JDBC进行开发,代码有些冗杂、开发效率也不够高,所以说就需要使用框架来协助开发。MyBatis就是一个优秀的持久层(三层架构中的DAO)框架,其主要用于简化JDBC的开发;MyBatis的底层就是JDBC,但是对其进行了高度的封装,从而简化了原生JDBC开发

使用MyBatis

准备工作

创建SpringBoot工程,引入MyBatis相关依赖

因为现在大部分的项目都是基于SpringBoot框架开发的,所以说直接在SpringBoot项目中引入MyBatis即可,并且在引入依赖时,不但需要引入MyBatis的框架,还需要引入MySQL的驱动(根据使用的数据库来引入对应的数据库驱动),因为MyBatis的底层是基于JDBC的,需要操作数据库,所以说对应的数据库的驱动是必不可少的。

准备数据库表user、实体类User

准备数据库表user来进行查询,并将查询出来的结果封装成对应的User实体对象。因为MyBatis是优秀的持久层框架,持久层在三层架构中是要从数据库中查询数据并给Service层返回数据的,为了方便使用数据,所以说要对数据库中查询出来的数据进行封装,便于后续的操作。

建表:

create table user(
    id int unsigned primary key auto_increment comment 'ID,主键',
    username varchar(20) comment '用户名',
    password varchar(32) comment '密码',
    name varchar(10) comment '姓名',
    age tinyint unsigned comment '年龄'
) comment '用户表';

insert into user(id, username, password, name, age) values (1, 'daqiao', '123456', '大乔', 22),
                                                           (2, 'xiaoqiao', '123456', '小乔', 18),
                                                           (3, 'diaochan', '123456', '貂蝉', 24),
                                                           (4, 'lvbu', '123456', '吕布', 28),
                                                           (5, 'zhaoyun', '12345678', '赵云', 27);

创建对象:

package com.wzb.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Integer id;
    private String username;
    private String password;
    private String name;
    private Integer age;

}
配置Mybatis

因为MyBatis操作的是数据库,而且是基于JDBC的,我们想要使用MyBatis也是需要配置数据库的连接信息的,但是和原生的JDBC有所不同,原生的JDBC是直接在源代码中进行配置的,但MyBatis中是在SpringBoot提供的application.properties文件中配置的连接信息:

完成准备工作之后,就可以开始编写MyBatis程序了。

编写MyBatis程序

编写MyBatis的持久层接口,在接口上添加注解@Mapper,代表通过注解的方式定义SQL语句,完成数据库操作。

MyBatis框架中的持久层接口按照规范都是叫……Mapper(也叫做Mapper接口),这是因为: MyBatis 最初受到iBatis的影响(MyBatis以前叫iBatis)。在iBatis中,就使用 “Mapper” 这个术语来表示数据访问对象(DAO),用于将数据库操作(如查询、插入、更新、删除)映射到 Java 方法。当MyBatis从iBatis发展而来时,延续了这个命名习惯。还有更重要的一点是: “Mapper” 这个词本身有 “映射器” 的意思。 在MyBatis的持久层接口中,它的主要作用就是将SQL语句和Java方法进行映射。

package com.wzb.mapper;

import com.wzb.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface UserMapper {

    @Select("select * from user")
    public List<User> selectAll();
}

MyBatis可以将数据库表中的字段和实体类中的属性一一对应(字段和属性的名字必须相同),自动封装成User的实体对象,并且由于查询结果是多条数据,会封装成多个User对象,MyBatis还会将多个User对象封装成一个userList集合,所以说该方法是返回的一个User集合。

测试MyBatis

package com.wzb;

import com.wzb.mapper.UserMapper;
import com.wzb.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
// 这是SpringBoot框架中的单元测试注解,当测试类的测试方法运行时,就会启动SpringBoot项目
// SpringBoot项目启动了,IOC容器就创建好了,若想测试IOC容器中的bean就可以直接注入了
class JavaWeb05MyBatisApplicationTests {

    private UserMapper userMapper;
    @Autowired
    public JavaWeb05MyBatisApplicationTests(UserMapper userMapper) {
        this.userMapper = userMapper;
    }

    @Test
    public void testSelectAll() {
        List<User> userList = userMapper.selectAll();
        for (User user : userList) {
            System.out.println(user);
        }
    }
}

在SpringBoot的测试类中编写代码,获取Mapper的返回结果并遍历输出,发现成功获得了user表中的所有数据,并且将这些数据封装成了userList的集合:

注意:测试类所在的包必须和项目的引导类(启动类)的包名相同(或者放在引导类所在的包的子包下)。

阿里巴巴的持久层抛弃了hibernate,采用的却是MyBatis框架。。。 前言 最近一直在研究MyBatis源码,作为国内经常使用的持久层框架,其内部代码的设计非常优秀。比如在开发过程中,有能力对框架进行深度的定制化开发,解决BUG也更加得心应手!另外学习开发者是如何设计高扩展性、低耦合性的代码,便于在自己的开发场景中应用。 而在Mybatis中,缓存是一个绕不开的话题。比如说,MyBatis的一级缓存竟然还会引来麻烦? MyBatis 一级缓存与 SpringFramework 的声明式事务有冲突吗?在 Service 中开启事务,连续查询两次同样的数据,结果两次查询的结果不 阅读详情

相关推荐

Java持久层框架:MyBatis介绍

MyBatis介绍

啊Q老师 3807

持久层框架(Mybatis)

不从恶人的计谋,不站罪人的道路,不坐亵慢人的座位,惟喜爱耶和华的律法,昼夜思想,这人便为有福!他要像一棵树栽在溪水旁,按时候结果子,叶子也不枯干。凡他所做的尽都顺利。

七叔的博客 2万+

MyBatis持久层框架详细解读:MyBatis快速入门篇

JavaEE 企业级 Java 项目中的经典三层架构为表现层,业务层和持久层,使用Java 代码操作数据库属于持久层内容,而 MyBatis 对 JDBC 代码进行了封装,作为一款优秀的持久层框架,专门用于简化JDBC开发。

zhangxia_的博客 2482

持久层框架

在上世纪90年代,针对Java连接数据库,JDBC(Java DataBase Connectivity)为Java开发人员提供了标准的访问数据库的接口。但是,随着时间的推移,数据库的访问量越来越大,对于数据库访问层的需求就越来越高。因此很多其他的持久层框架就应运而生了,例如MyBatis、Hibernate、JPA等。

DAwagua的博客 1548

MyBatis概述——一个优秀的持久层框架

MyBatis 是一款开源的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和参数处理,将 XML 配置化结果映射成 Java 对象并通过接口形式传入到业务层,使得开发人员更关注于业务逻辑而不是数据库相关的事务控制和重复代码等低级事务性工作。

AI天才研究院 1394

华为产品安全基线

一、敏感信息安全传输 1、采用HTTPS安全协议传输 2、客户端本地保存的敏感信息,需要先加密再保存使用,不可逆支持PBKDF2(迭代10000次)加密保存,可逆支持AES256+IV保存,密钥支持可更新 二、认证鉴权 1、License中心与分析节点分布式部署,需要做用户名+口令安全认证,支持使用HTTPS安全协议。 2、客户端登录支持防暴力破解,支持验证码,多次连续尝试登陆失败后锁定账...

zileixu的博客 1万+

MyBatis持久层框架详解

MyBatis框架编写,SQL语句的编写

five小点心的博客 1860

面向网络攻击行为可视化分析系统实现【WebSocket + 可视化】

本系统主要应用于网站运维管理,它解决了网站运维人员排查网络攻击行为复杂且繁琐等问题,提高了运维人员网络安全分析的效率和准确性。

oNew_Lifeo的博客 1622

常见持久层框架赏析,到底是什么让你选择 MyBatis?

我们重点介绍了 3 种常见的 ORM 持久化框架,那在实际工作中我们又应该如何选择合适的持久层框架呢?从性能角度来看,Hibernate、Spring Data JPA 在对 SQL 语句的掌控、SQL 手工调优、多表连接查询等方面,不及 MyBatis 直接使用原生 SQL 语句方便、高效;从可移植性角度。

Java全能学习+面试指南 781

解决QT5调用软键盘qvirtualkeyboard时崩溃问题ime_pinyin::MatrixSearch::init_user_dictionary

但是偶尔也会出现问题,譬如,我这边在Arm系统上跑着程序的时候,点击用户编辑框,输入法弹出,但是再次点击密码输入框,连程序都给我崩溃了。只是提示错误:void ime_pinyin::MatrixSearch::init_user_dictionary。首先确保你的Arm版QT库已经编译了软键盘,位置有时候就和lib同级目录,qtvirtualkeyboard。QT5中的软键盘qvirtualkeyboard很好用,很多人开发嵌入式端应用的时候都会用到。此外还有很多其他的输入法字典,像。

有问题或资源连接有缺失的可以私信公众号新潮看世界获取 2075

【系统架构设计师】预测试卷四:综合知识(75道选择题)

本文整理系统架构设计师考试高频考点,涵盖计算机系统基础、计算机网络、数据库、软件工程与UML四大模块,共28道典型题目。重点解析Cache局部性原理、RISC/CISC区别、TCP三次握手、B+树索引优势、CAP定理、螺旋模型特点等核心概念,并标注易错选项,帮助考生快速掌握解题思路。 关键词:系统架构、Cache、RISC、TCP、B+树、CAP定理、螺旋模型

数据知道的博客 550

Mybatis——持久层框架

目录MyBatis01 简介1.1 什么是Mybatis1.2 持久化1.3 持久层1.4 为什么需要MyBatis02 第一个Mybatis程序2.1 搭建环境2.2 创建一个模块2.3 编写代码2.4 注意点03 CRUD3.1 namespace3.2 select3.3 insert3.4 update3.5 delete3.6 分析错误3.7 万能的Map3.8 思考题3.9 注意点04 配置解析4.1 核心配置4.2 环境配置(environments)4.3 属性(properties)4.4

胖虎虎 2946

新手必看!手把手教你如何在飞牛NAS上玩转Docker容器!(飞牛Nas(fnOS)如何创建Docke容器以及Compose部署项目)

新手必看!手把手教你如何在飞牛NAS上玩转Docker容器!(飞牛Nas(fnOS)如何创建Docke容器以及Compose部署项目)

XiaoqiangClub的博客 1万+

一款优秀持久层框架Mybatis详解!

一款优秀的持久层框架 MyBatis框架详解!

SYJ的博客 1751

<IBM DB2>《DB2 官方监控脚本 2022版本》

DB2 监控脚本

Else 的博客 675

【ubuntu24.04】auto remove后,重启,kernel panic ,please reboot your computer vfs unable to mount root fs

Ubuntu 24.04系统在运行auto remove后出现内核恐慌(kernel panic)无法启动,显示"VFS: unable to mount root fs"错误。该问题是由于当前内核被清除导致系统无法挂载根分区。解决步骤包括:1)尝试用GRUB菜单中的旧内核启动;2)在GRUB中临时编辑启动参数;3)使用Ubuntu启动盘进行chroot修复;4)使用Boot-Repair工具一键修复。成功启动后,需要重新安装linux-generic等元包,重建initramfs并更新

突围 1217

优秀持久层框架——MyBatis

在Java程序中如果想要操作数据库,可以使用官方提供的API——JDBC,但从开发效率而言,直接使用原生的JDBC进行开发,代码冗杂、开发效率低,所以说在开发中使用的是一些基于原生JDBC搭建的高级框架。而MyBatis就是一个优秀的持久层(三层架构中的DAO)框架,其主要用于简化JDBC的开发;MyBatis的底层实现就是JDBC,但是对其进行了高度的封装,从而能够更好的进行数据库操作。

Aishangyuwen的博客 610

【天气雷达】双偏振产品-差分反射率ZDR详解

双偏振产品-差分反射率ZDR详解。

珞瑜的博客 5412

MyBatis持久层框架

MyBatis 的真正强大在于它的语句映射,这是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 致力于减少使用成本,让用户能更专注于 SQL 代码。insert– 映射插入语句。update– 映射更新语句。delete– 映射删除语句。select– 映射查询语句。MyBatis 在查询和结果映射做了相当多的改进。一个简单查询的 select 元素是非常简单:</

2302_78998188的博客 1037

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Mybatis优秀的持久层框架

1.Mybatis引入2.Mybatis的初次使用3.Mybatis的配置细节4.Mybaits完成DML全部操作(CURD)

zhzjn的博客 699

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【MyBatis】Java 数据持久层框架:认识 MyBatis

MyBatis 和 JPA 一样,也是一款优秀的持久层框架,它支持定制化 SQL、存储过程,以及高级映射。它可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通 Java 对象)映射成数据库中的记录。

Data · Model · Agent · Repeat 1682

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

一款优秀的持久层框架Mybatis

一、什么是Mybatis? 1.是一款优秀的持久层框架 2.支持定制化sql,灵活 3.半自动化持久化层框架,需要程序员写sql 二、Mybatis的优点 1.基于sql,简单易学 2.便于了解底层组装过程 3.sql写在配置文件中,方便管理 4.程序调试方便 三、Mybatis和jdbc的区别 1.减少了大量的代码量 2.Mybatis是最简单的持久层框架 3.架构性能增强 4.sq...

qq_45237673的博客 2233

java持久层框架优秀的MyBatis

mybatis笔记 框架阶段大量用到了xml 反射 动态代理的相关知识需回顾 #####.mybatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Ja...

weixin_42293937的博客 1287
上一篇: Lombok 的@EqualsAndHashCode 注解:你真的了解它的重要性吗?
下一篇: JVM进阶调优【1】类加载器原理一文讲透
加班不秃顶
博客等级 码龄7年 1822粉丝 599原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值