Mybatis概述和快速入门

Mybatis知识day01 Mybatis概述及快速入门 一、框架概述 1.1什么是框架? 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法。另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。 简而言之,框架其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。 1.2框架要解决的问题: 框架要解决的最重要的一个问题是技术整合的问题,在J2EE的框架中,有着各种.. 阅读详情

Mybatis概述

Mybatis概念

(1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。

(2)MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。

(3)通过xml 文件或注解的方式将要执行的各种 statement 配置起来,并通过java对象和 statement中sql的动态参数进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射为java对象并返回。(从执行sql到返回result的过程)。

个人总结:MyBatis是一个可以自定义SQL、存储过程和高级映射的持久层框架

官方说明:MyBatis是一个一流的持久性框架,支持自定义SQL、存储过程和高级映射。MyBatis消除了所有的JDBC代码和手动设置参数和检索结果。MyBatis可以使用简单的XML或注释进行配置,并将原语、映射接口和Java pojo(普通的旧Java对象)映射到数据库记录

JDBC 缺点

下面是 JDBC 代码,我们通过该代码分析都存在什么缺点:

在这里插入图片描述

  • 硬编码

    • 注册驱动、获取连接

      上图标1的代码有很多字符串,而这些是连接数据库的四个基本信息,以后如果要将Mysql数据库换成其他的关系型数据库的话,这四个地方都需要修改,如果放在此处就意味着要修改我们的源代码。

    • SQL语句

      上图标2的代码。如果表结构发生变化,SQL语句就要进行更改。这也不方便后期的维护。

  • 操作繁琐

    • 手动设置参数

    • 手动封装结果集

      上图标4的代码是对查询到的数据进行封装,而这部分代码是没有什么技术含量,而且特别耗费时间的。

Mybatis 优化
  • 硬编码可以配置到配置文件
  • 操作繁琐的地方mybatis都自动完成

如图所示

在这里插入图片描述

Mybatis快速入门

需求:查询user表中所有的数据

  • 创建user表,添加数据

    create database mybatis;
    use mybatis;
    
    drop table if exists tb_user;
    
    create table tb_user(
    	id int primary key auto_increment,
    	username varchar(20),
    	password varchar(20),
    	gender char(1),
    	addr varchar(30)
    );
    
    INSERT INTO tb_user VALUES (1, 'zhangsan', '123', '男', '北京');
    INSERT INTO tb_user VALUES (2, '李四', '234', '女', '天津');
    INSERT INTO tb_user VALUES (3, '王五', '11', '男', '西安');
    
  • 创建模块,导入坐标

    在创建好的模块中的 pom.xml 配置文件中添加依赖的坐标

    <dependencies>
        <!--mybatis 依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.5</version>
        </dependency>
    
        <!--mysql 驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.46</version>
        </dependency>
    
        <!--junit 单元测试-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>
            <scope>test</scope>
        </dependency>
    
        <!-- 添加slf4j日志api -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.20</version>
        </dependency>
        <!-- 添加logback-classic依赖 -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
        <!-- 添加logback-core依赖 -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.2.3</version>
        </dependency>
    </dependencies>
    

    注意:需要在项目的 resources 目录下创建logback的配置文件

  • 编写 MyBatis 核心配置文件 – > 替换连接信息 解决硬编码问题

    在模块下的 resources 目录下创建mybatis的配置文件 mybatis-config.xml,内容如下:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
    
        <typeAliases>
            <package name="com.onenewcode.pojo"/>
        </typeAliases>
        
        <!--
        environments:配置数据库连接环境信息。可以配置多个environment,通过default属性切换不同的environment
        -->
        <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:///mybatis?useSSL=false"/>
                    <property name="username" value="root"/>
                    <property name="password" value="1234"/>
                </dataSource>
            </environment>
    
            <environment id="test">
                <transactionManager type="JDBC"/>
                <dataSource type="POOLED">
                    <!--数据库连接信息-->
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql:///mybatis?useSSL=false"/>
                    <property name="username" value="root"/>
                    <property name="password" value="1234"/>
                </dataSource>
            </environment>
        </environments>
        <mappers>
           <!--加载sql映射文件-->
           <mapper resource="UserMapper.xml"/>
        </mappers>
    </configuration>
    
  • 编写 SQL 映射文件 --> 统一管理sql语句,解决硬编码问题

    在模块的 resources 目录下创建映射配置文件 UserMapper.xml,内容如下:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="test">
        <select id="selectAll" resultType="com.onenewcode.pojo.User">
            select * from tb_user;
        </select>
    </mapper>
    
  • 编码

    • 在 com.onenewcode.pojo 包下创建 User类

      public class User {
          private int id;
          private String username;
          private String password;
          private String gender;
          private String addr;
          
          //省略了 setter 和 getter
      }
      
    • 在 com.onenewcode 包下编写 MybatisDemo 测试类

      public class MyBatisDemo {
      
          public static void main(String[] args) throws IOException {
              //1. 加载mybatis的核心配置文件,获取 SqlSessionFactory
              String resource = "mybatis-config.xml";
              InputStream inputStream = Resources.getResourceAsStream(resource);
              SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
      
              //2. 获取SqlSession对象,用它来执行sql
              SqlSession sqlSession = sqlSessionFactory.openSession();
              //3. 执行sql
              List<User> users = sqlSession.selectList("test.selectAll"); //参数是一个字符串,该字符串必须是映射配置文件的namespace.id
              System.out.println(users);
              //4. 释放资源
              sqlSession.close();
          }
      }
      
MyBatis详解 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。 阅读详情

相关推荐

Mybatis

是一款优秀的持久层 半自动ORM 框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJO(普通的Java对象)映射成数据库中的记录。Configration会去找全局配置文件,然后sesssion工厂去找sqlsession。Sqlsession就是myBatis中最核心的了。它去加载mappedStatment。然后去执行TransAction。

Gao_xu_sheng的博客 725

Mybatis01 Mybatis简介、Mybatis的快速入门、MyBatis的映射文件概述、MyBatis的增删改查操作、MyBatis核心配置文件概述、MyBatis相应API

Mybatis011.Mybatis简介1.1原始jdbc操作(查询数据)1.2原始jdbc操作(插入数据)1.3 原始jdbc操作的分析1.4 什么是Mybatis2.Mybatis的快速入门2.1 MyBatis开发步骤2.2 环境搭建2.3 编写测试代码2.4 知识小结3. MyBatis的映射文件概述4. MyBatis的增删改查操作4.1 MyBatis的插入数据操作4.2 MyBatis的修改数据操作4.3 MyBatis的删除数据操作4.4 知识小结5. MyBatis核心配置文件概述5.1

狗提莫的博客 237

基于BS21的星闪模块设计电路SLE/BLE

基于BS21的星闪模块设计电路SLE/BLE HI2821

2503_91889531的博客 2737

Mybatis-1-概述、快速入门

# 内容 1.框架 2.Mybatis的概述 3.Mybatis快速入门 ## 框架 1.什么是框架? * 概念:它是我们软件开发中的一套解决方案,不同的框架解决的是不同的问题。 * 使用框架的好处:框架封装了很多的细节,使开发者可以使用极简的方式实现功能。大大提高开发效率。 2.三层架构: * 表现层:是用于展示数...

爱学习的1024 165

37张图详解MAC地址、以太网、二层转发、VLAN

MAC 地址 每个网卡或三层网口都有一个 MAC 地址, MAC 地址是烧录到硬件上,因此也称为硬件地址。MAC 地址作为数据链路设备的地址标识符,需要保证网络中的每个 MAC 地址都是唯一的,才能正确识别到数据链路上的设备。 MAC 地址由 6 个字节组成。前 3 个字节表示厂商识别码,每个网卡厂商都有特定唯一的识别数字。后 3 个字节由厂商给每个网卡进行分配。厂商可以保证生产出来的网卡不会有相同 MAC 地址的网卡。 现在可以通过软件修改 MAC 地址,虚拟机使用物理机网卡的 MAC 地址,并不能保.

networktp的博客 4745

candence layout快捷键

摁住鼠标左键再框选:选中 摁住鼠标右键再框选:放大 选中之后,滚动鼠标滚轮进行放大缩小。 F:回到全局 shift+V:缩小 键盘的箭头:移动视图 F1:显示帮助文档Candence help F2:保存 点击r,画出矩形时不双击鼠标,点击F3,可以设置尺寸。 Creat-Shape-Path Creat-Wiring-Bus:画多根线。F3设置线宽、间距等。 选中金属后,Shift+G画保护环guard ring。F3可以设置距离金属的间距、保护环的形状。 Path和Rectang

weixin_45861827的博客 2653

mybatis概述及快速入门使用篇

Mybatis概述及入门使用 1.MyBatis 是什么 一款半自动的ORM(对象关系映射)持久层框架,它内部封装了JDBC,MyBatis 可以使用 XML 或注解来配置和映射原生信息。 2.原理是什么 1.读取sqlmapconfig.xml获得输入流 2.创建sqlsessionfactorybuilder,获得sqlsessionfactory 3.通过opsession,获得sqlsession 4.获得mapper,代理对象 5.调用方法 6.释放资源 二级缓存,Mybatis优缺点及快速入门。

qq_61116557的博客 234

AD936x Evaluation Software 详细配置

作者:ShownSun 工作室:时沿科技 文章目录AD936x Evaluation Software详细配置1 系统概述2 AD9361 Wireless Transceiver Evaluation Setup2.1 标签描述2.2 用户参数2.3详细配置3 AD936x RF Wizard3.1 标签描述3.2 用户参数3.3 详细配置4 AD936x Digital Filter Wizard4.1 标签描述4.1.1 时钟配置4.1.2 滤波器配置4.1.3 接收滤波器配置4.1.4 发射滤..

ShownSun博客 5190

Mybatis知识总结(一)框架概述 与Mybatis快速入门

一: 框架概述 1.1 什么是框架 1.1.1 什么是框架 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。 简而言之,框架其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成...

洺润Star的博客 554

自己动手写CPU(1)五级流水线及CPU第一条指令ori

自己动手写CPU(1)五级流水线及CPU第一条指令ori 动机 不知为何研一的自由时间突然多起来,可能人一闲下来就容易焦虑吧,hhhhhh。正好之前看到一本《自己动手写CPU》,就按照此书从头实做一遍MIPS指令集的CPU,也当做对大学课程的总结。之前看龙芯杯比赛的代码震惊到我了,想想那堆大佬本科在搞这东西而我本科在瓜瓜地刷分,感叹人之间的差距真的好大。痛定思痛,还是先动手做起来这才能假意安慰自己,我好像也不错。闲言少叙,让我们开始吧! 由于作者提供了各章实现的具体代码,所以该系列博客主要记录我过程中有哪些

谦豫 7076

如何做好软件需求分析?

软件需求分析也称为系统需求分析或需求分析工程等,是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么的过程。软件开发一般包括:可行性分析、需求分析、软件设计、软件开发、软件测试、软件实施、软件服务等步骤,需求分时软件开发的第一步骤。用户需求分析是指在系统设计之前和设计、开发过程中对用户需求所作的调查与分析,是系统设计、系统完善和系统维护的依据。

qq_41854911的博客 1415

Mybatis -- Mybatis快速入门、映射文件概述、Myabtis增删改查操作

1. Mybatis快速入门 快速入门步骤: 准备工作 创建一个maven工程: 1.1 添加Mybatis坐标(导入相关的依赖) pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:

天行健 君子以自强不息,地势坤 君子以厚德载物。 454

【TC3xx芯片】TC3xx DMA模块详解

TC3xx DMA模块详解

qq_36056498的博客 5915

SSM11.1【Mybatis:Mybatis简介、快速入门、映射文件概述】

简介 快速入门 1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan...

yubaby 101

1、信息与物理世界:“It from Bit”还是“Bit from It”?

这篇博文探讨了物理学与信息理论之间的深刻联系,从惠勒提出的“It from Bit”概念出发,讨论了信息是否是物质世界的基础,或者物质是否是信息的来源。文章回顾了2013年举办的征文竞赛以及众多学者对这一问题的不同观点,涵盖了量子理论、热力学、计算机科学、黑洞物理以及时空本质等多个领域。同时,文章还分析了信息理论在哲学层面的含义,并展望了其在未来理论、实验和应用研究中的潜力与方向。

water的专栏 289

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

java day53【 Mybatis框架概述 、 Mybatis 框架快速入门、自定义 Mybatis 框架 】

第1章 框架概述 1.1 什么是框架 1.1.1 什么是框架   框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种 定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。 简而言之,框架其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别 人搭好的舞台,你来做...

weixin_30590285的博客 152

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

一文掌握Mybatis快速入门与Mapper代理开发,提升你的编程技能!

MyBatis 是一款优秀的持久层框架,用于简化 JDBC 开发MyBatis 本是 Apache 的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了googlecode,并且改名为MyBatis。

1237

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Java进阶篇7_MyBatis的简介、快速入门、映射文件概述、增删改查操作、核心配置文件概述、相应的API、Dao层实现

目录 MyBatis的简介、 原始JDBC的手动操作 快速入门、 1开发步骤 2快速使用 3小结 映射文件概述、 增删改查操作、 1查 2增 3删 4小结 核心配置文件概述、 1核心配置文件层级关系 2常用配置解析 小结 相应的API 1工厂的构造器—》产生工厂对象 2工厂对象—》产生会话对象 3会话对象—》执行操作 Dao层实现 1传统手动方式实现Dao 为DaoImpl 2代理开发方式 3知识小结 开始 一、MyBatis的简介、 持久层的框架,方便我们对数

xiaosi的博客 451

MyBatis-Plus快速入门-(干货满满+超详细)

文章目录一、MyBatis VS JPA二、MyBatis-Plus简介三、MyBatis-Plus快速入门1、lombok简介及安装2、入门小案例四、基本使用1、通用传统模式简介及通用mapper新增方法2、常用注解3、排除非表字段的三种方式五、MyBatis-Plus查询方法 一、MyBatis VS JPA JPA: java持久层API,可以理解为一种规范,Hibernate就是其具体一个实现。(目前比较常用的是SpringDataJpa,它是Spring提供的一套简化开发的框架,按照约定好的方法命

一个爱运动的程序员的博客 10万+

Mybatis入门

mybatis 是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。mybatis通过xml或注解的方式将要执行的各种 statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句。[sql是通过配置]最后mybatis框架执行sql并将结果映射为java对象并返回。

2301_77165049的博客 1168

mybatis

一 Mybatis概述 1.1 简介 MyBatis(官网:https://mybatis.org/mybatis-3/zh_CN/index.html )是一款优秀的开源的 持久层 框架,用于简化JDBC的开发。是 Apache的一个开源项目iBatis,2010年这个项目由apache迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 MyBatis的特点 MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。 MyBatis封装了几乎所

st03zy的博客 5447

SpringBoot概述、快速入门

Spring概述、快速入门 Spring概述、快速入门 SpringBoot配置 SpringBoot整合 02-SpringBoot概述 SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率 SpringBoot功能 1) 自动配置 Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用

qukun_的博客 186

JavaWeb基础第二章(Maven项目与MyBatis 的快速入门与配置)

在快速迭代和竞争激烈的现代软件开发中,有效管理项目构建和依赖关系至关重要。Maven,作为一个项目管理工具,不仅提高了开发效率,还提供了一个标准化建筑的平台。在本篇博客中,我们将深入探索Maven的奥秘,从maven的总体理解到Apache Maven的项目对象模型(POM),再到具体的安装配置流程,每一步都将简化开发者对于复杂项目结构的理解与操作。此外,我们还会探讨MyBatis框架的引入及其好处,如何通过它简化JDBC开发,并使数据持久层的工作变得更加直观易懂。这些工具无疑会对你的Java开发旅程产生积

Du_XiaoNan的博客 863

MyBatis-Plus(概述、快速入门、日志配置、主键生成策略、自动填充、CRUD、性能分析插件、条件构造器、代码生成器)

文章目录JSON(一)什么是json? JSON (一)什么是json? JSON(JavaScript Object Notation)是 JavaScript 对象表示法,是一种轻量级的数据交换格式;基于 ECMAScript 的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简单说JSON 是存储和交换文本信息的语法。类似 XML,但比 XML 更小、更快,更易解析,易于人阅读...

Pluto.的博客 1345

MyBatis-Plus(day1快速入门)

一、MyBatis-Plus概述 MyBatis-Plus 可以节省我们的工作时间,所有的CRUD代码它都可以自动化完成! 还有 JPA 和 tk-mapper 官网 :https://baomidou.com/ 导入第三方组件步骤 导入对应依赖 研究依赖如何配置 代码如何编写 提高扩展技术能力 二、快速入门 打开本地数据库,建立user表 DROP TABLE IF EXISTS user; CREATE TABLE user ( id BIGINT(20) NOT

qq_42102911的博客 1275
上一篇: spring 笔记十 Spring事务管理
下一篇: spring 笔记九 Spring AOP
过去日记
过去日记 新星创作者: 后端开发技术领域 新星创作者: 后端开发技术领域
博客等级 码龄3年 5342粉丝 225原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

过去日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值