Mybatis基于注解与XML开发使用流程

 更新时间:2023年07月28日 10:55:48   作者:学废Java  
MyBatis是Java的持久化框架,目的是为了使操作数据库更加方便、灵活、高效,可以通过Java注解和XML文件来映射Java对象和SQL语句,提供了非常灵活的SQL编写方式和动态SQL语句的创建方式,这篇文章主要介绍了Mybatis基于注解与XML开发,需要的朋友可以参考下

1 关于SpringBoot

SpringBoot是一个基于Spring框架的快速开发的脚手架,它能够帮助我们开发者快速搭建项目环境,并提供了一些建议的配置方式,降低了开发者程序的开发和部署难度。

2 关于MyBatis

2.1 MyBatis概述

MyBatis是Java的持久化框架,目的是为了使操作数据库更加方便、灵活、高效。可以通过Java注解和XML文件来映射Java对象和SQL语句,提供了非常灵活的SQL编写方式和动态SQL语句的创建方式,可以与Spring框架结合使用。

2.2 MyBatis核心思想

将Java对象和数据库操作分离,通过注解和XML映射文件映射到数据库的字段上,并提供相应的API来操作数据库。可以自动将SQL语句转为JDBC代码,并根据指定的返回值类型生成对应的结果提供给开发者使用。

2.3 MyBatis使用流程

1.配置MyBatis环境
在pom.xml中添加相关依赖:MyBatis Framework 和 MySQL Driver
2.配置文件中配置数据库的连接信息(application.properties)

     spring.datasource.url=jdbc:mysql://localhost:3306/blog?characterEncoding=utf8&serverTimezone=Asia/Shanghai
      spring.datasource.username=root
      spring.datasource.password=root

3.定义pojo类,和数据表做好映射关系

4.编写Dao层接口,在接口中定义操作数据库的方法,在注解或者XML文件中实现具体的SQL语句。

      @Mapper
      public interface UserMapper{
          @Insert("INSERT INTO user VALUES(NULL,#{username})")
          int insert(User user);
      }

5.使用

       // 1.自动装配
       @Autowired
       private UserMapper userMapper
       // 2.调用方法
       userMpper.insert(...)

3 MyBatis配置SQL方式

3.1 基于注解方式

3.1.1 说明

基于注解方式省去了配置XML文件的编写工作,并且可以很方便的完成一些 简单的 CRUD操作,但是对于一些复杂的SQL语句使用起来会很冗余。

3.1.2 使用流程

  • (maven工程)在pom.xml中添加MyBatis和MySQL相关的依赖
  • 在配置文件中(application.properties)配置数据库的连接信息
  • 创建实体类,和数据库中的表做好对应关系
  • 配置Mapper接口,在接口中添加@Mapper注解,告诉底层为此接口创建实现类,在实现类中定义数据访问的逻辑,执行与数据库的会话
  • 在接口中定义方法,在方法上使用注解标注SQL语句的类型,可以使用的注解有:@Insert、@Dlelete、@Update、@Select
  • 如果SQL语句中涉及到多个参数,可以使用@Param注解给每个参数取名。
  • 自动装配并在应用程序中使用即可
     @Autowired
      private XxxMapper xxxMapper;
      xxxMapper.接口中的方法(参数...);

3.1.3 常用注解

  • @Insert(“SQL”)
  • @Dlelete(“SQL”)
  • @Update(“SQL”)
  • @Select(“SQL”)

3.2 基于XML方式

3.2.1 相比注解优势

  • 更好的可读性
  • XML文件具有良好的结构和语义,可以使JAVA代码和SQL语句彻底分离,便于管理和优化。注解配置SQL语句可能使JAVA代码变的冗长。
  • 更好的复用性
  • 将SQL语句写入XML文件中,通过 和标签 将重复的SQL抽取并引用,从而提高了SQL语句的复用性。
  • 更好的支持动态SQL
  • 动态SQL语句是根据运行时的参数来生成的SQL,复杂性较高,使用XML文件更加方便。

3.2.2 使用流程

  • 添加依赖:pom.xml
  • 配置数据源:application.propertis
  • 配置xml文件的扫描路径:application.properties
  • 创建实体类,做好和数据表的对应关系
  • 定义接口,添加@Mapper注解,并定义接口中的方法
  • 创建xml文件,使用标签配置SQL
  • 装配使用
      @Autowired
      private XxxMapper xxxMapper;
    xxxMapper.接口方法(参数...);

3.2.3 常用标签

  • insert标签
  • delelte标签
  • update标签
  • select标签
    使用select标签需要指定 resultType 的属性值
  • foreache标签:用于动态删除
      <delete id="xxx">
      	DELETE FROM xxx WHERE id in(
          	<foreache collection="对象类型" item="变量名" separator="分隔符">
          		#{变量名}
          	</foreache>
          )
      </delete>

set标签和if标签:用于动态修改

      <update id="xxx">
      	UPDATE xxx 
          <set>
          	<if test="属性名!=null">字段名=#{属性名},</if>
              <if test="属性名!=null">字段名=#{属性名},</if>
              <if test="属性名!=null">字段名=#{属性名}</if>
          </set>
      </update>

sql标签和include标签:用于SQL语句的复用

      <!--1.重复SQL抽取-->
      <sql id="selectSql">
          SELECT * FROM xxx
      </sql>
      <select id="xxx" resultType="xxx">
          <include refid="selectSql"></include>
      </select>
      <select id="yyy" resultType="yyy">
          <include refid="selectSql"></include> WHERE id&gt;5
      </select>

到此这篇关于Mybatis基于注解与XML开发的文章就介绍到这了,更多相关Mybatis注解XML开发内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于Springboot的高校社团管理系统的设计与实现

    基于Springboot的高校社团管理系统的设计与实现

    本文将基于Springboot+Mybatis开发实现一个高校社团管理系统,系统包含三个角色:管理员、团长、会员。文中采用的技术有Springboot、Mybatis、Jquery、AjAX、JSP等,感兴趣的可以了解一下
    2022-07-07
  • mybatis postgresql 批量删除操作方法

    mybatis postgresql 批量删除操作方法

    PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),这篇文章主要介绍了mybatis postgresql 批量删除操作,需要的朋友可以参考下
    2020-02-02
  • 一篇文章搞定数据库连接池

    一篇文章搞定数据库连接池

    数据库连接池在编写应用服务是经常需要用到的模块,太过频繁的连接数据库对服务性能来讲是一个瓶颈,使用缓冲池技术可以来消除这个瓶颈,本文就来介绍Java常见的几种,感兴趣的可以了解一下
    2021-07-07
  • SpringBoot中Redisson延迟队列的示例

    SpringBoot中Redisson延迟队列的示例

    延时队列是一种常见的需求,延时队列允许我们延迟处理某些任务,本文主要介绍了Redisson延迟队列的示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-06-06
  • Java代码性能优化的35个方法总结

    Java代码性能优化的35个方法总结

    本篇文章主要介绍了Java代码性能优化的35个方法,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • Java操作压缩包解压过程详解

    Java操作压缩包解压过程详解

    这篇文章主要介绍了Java操作压缩包解压过程,项目开发中,总会遇到解压缩文件的时候,比如用户下载多个文件时,服务端可以将多个文件压缩成一个文件,用户上传资料时,允许上传压缩文件,服务端进行解压读取每一个文件,使用场景是很多的,下面来详细讲解,需要的朋友可以参考下
    2024-10-10
  • java中怎么将多个音频文件拼接合成一个

    java中怎么将多个音频文件拼接合成一个

    在Java中,将多个音频文件拼接成一个通常需要使用一些专门的音频处理库,因为Java标准库并不直接支持音频文件的合并,一个常用的库是JAVE2(Java Audio Video Encoder)或JLayer(用于MP3)结合JavaFX(如果用于简单的WAV文件)或其他类似的库
    2024-06-06
  • Java线程并发工具类CountDownLatch原理及用法

    Java线程并发工具类CountDownLatch原理及用法

    这篇文章主要介绍了Java线程并发工具类CountDownLatch原理及用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • SpringSecurity学习之自定义过滤器的实现代码

    SpringSecurity学习之自定义过滤器的实现代码

    这篇文章主要介绍了SpringSecurity学习之自定义过滤器的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • Java全面解析IO流相关知识

    Java全面解析IO流相关知识

    这篇文章主要介绍了IO流相关知识,包括File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合)相关知识的总结
    2021-08-08

最新评论