0
点赞
收藏
分享

微信扫一扫

flutter dio使用proxyman抓包进行网络调试

🍎个人博客:个人主页

🏆个人专栏: Mybatis   

⛳️  功不唐捐,玉汝于成



目录

前言

正文

一、概述

MyBatis简介

主要特性

1. 动态SQL

2.结果映射

3 .插件机制

二、MyBatis配置文件

1.配置文件结构

数据库连接信息

全局配置

映射器扫描

2.SQL映射文件

SQL语句定义

参数映射和结果映射

结语

我的其他博客


前言

正文

一、概述

MyBatis简介

MyBatis(前身为iBatis)是一种基于Java的持久层框架,用于将对象与关系数据库之间的交互映射更加简单。以下是一些MyBatis的基本概念:

主要特性
1. 动态SQL

MyBatis提供了强大的动态SQL功能,允许在XML文件中编写包含条件判断、循环等逻辑的SQL语句。这使得根据不同条件构建不同的SQL语句成为可能,提高了SQL语句的灵活性。

<!-- 示例:动态WHERE语句 -->
<select id="findUsers" parameterType="map" resultType="User">
  SELECT * FROM users
  WHERE
  <if test="name != null">
    AND name = #{name}
  </if>
  <if test="age != null">
    AND age = #{age}
  </if>
</select>

2.结果映射

MyBatis支持将查询结果映射到Java对象,通过配置映射关系,可以将数据库列与Java对象的属性进行对应。

<!-- 示例:结果映射 -->
<resultMap id="userResultMap" type="User">
  <id property="id" column="user_id"/>
  <result property="username" column="username"/>
  <result property="email" column="email"/>
</resultMap>
3 .插件机制

MyBatis的插件机制允许开发者在执行SQL语句的不同阶段插入自定义逻辑,例如对参数进行处理、对结果进行处理等。这种机制可以方便地扩展MyBatis的功能。

// 示例:自定义插件
@Intercepts({
  @Signature(type= Executor.class, method = "update", args = {MappedStatement.class, Object.class})
})
public class MyPlugin implements Interceptor {
  @Override
  public Object intercept(Invocation invocation) throws Throwable {
    // 在SQL执行前后执行自定义逻辑
    return invocation.proceed();
  }
}

 这些主要特性使MyBatis在数据库操作方面具有很高的灵活性和可定制性,适用于各种复杂的数据访问场景。

二、MyBatis配置文件

MyBatis的配置文件是一个重要的组成部分,其中包含了框架的全局配置信息,包括数据库连接、日志、缓存等。以下是一个典型的MyBatis配置文件的结构:

1.配置文件结构

<!-- 示例:MyBatis配置文件 -->
<configuration>
  <!-- 数据库连接信息 -->
  <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/mydatabase"/>
        <property name="username" value="username"/>
        <property name="password" value="password"/>
      </dataSource>
    </environment>
  </environments>

  <!-- 全局配置 -->
  <settings>
    <setting name="logImpl" value="STDOUT_LOGGING"/>
  </settings>

  <!-- 映射器(Mapper)扫描 -->
  <mappers>
    <mapper resource="com/example/UserMapper.xml"/>
    <!-- 其他映射器文件或映射器类 -->
  </mappers>
</configuration>
数据库连接信息

<dataSource>元素中配置数据库连接信息,包括数据库驱动、连接地址、用户名和密码。这些信息将用于建立与数据库的连接。

全局配置

<settings>元素用于配置一些全局的设置,例如日志实现类、缓存策略等。

映射器扫描

<mappers>元素用于指定MyBatis应该扫描的映射器文件或映射器类。映射器文件包含了SQL语句的定义,而映射器类则可以通过注解方式定义SQL语句。

2.SQL映射文件

SQL映射文件定义了具体的SQL语句以及与之相关的参数映射和结果映射。以下是一个简单的SQL映射文件的结构:

<!-- 示例:SQL映射文件 -->
<mapper namespace="com.example.UserMapper">
  <!-- 查询用户信息 -->
  <select id="selectUser" resultType="User">
    SELECT * FROM users WHERE id = #{id}
  </select>

  <!-- 插入用户信息 -->
  <insert id="insertUser" parameterType="User">
    INSERT INTO users (id, username, email) VALUES (#{id}, #{username}, #{email})
  </insert>

  <!-- 更新用户信息 -->
  <update id="updateUser" parameterType="User">
    UPDATE users SET username = #{username}, email = #{email} WHERE id = #{id}
  </update>

  <!-- 删除用户信息 -->
  <delete id="deleteUser" parameterType="int">
    DELETE FROM users WHERE id = #{id}
  </delete>
</mapper>

SQL语句定义

<select>, <insert>, <update>, <delete>等元素中定义具体的SQL语句。通过#{}占位符表示参数的位置,这些占位符将在实际执行时被具体的参数值替换。

参数映射和结果映射

通过parameterTyperesultType属性指定参数类型和结果类型。参数类型用于将Java对象传递给SQL语句,而结果类型则用于将查询结果映射为Java对象。

这是MyBatis配置和SQL映射文件的基本结构和用法,通过逐步学习和实践,你可以更深入地了解如何配置MyBatis以及如何编写和使用SQL映射文件。

结语

我的其他博客

SpringCloud和Dubbo有哪些区别-CSDN博客

【JAVA面试题】static的作用是什么?详细介绍-CSDN博客

【JAVA面试题】final关键字的作用有哪些-CSDN博客

【JAVA面试题】什么是代码单元?什么是码点?-CSDN博客

【JAVA面试题】什么是深拷贝?什么是浅拷贝?-CSDN博客

【Linux笔记】系统信息-CSDN博客

【Linux笔记】网络操作命令详细介绍-CSDN博客

【Linux笔记】文件和目录操作-CSDN博客

【Linux笔记】用户和权限管理基本命令介绍-CSDN博客

Axure RP - 交互设计的强大引擎-CSDN博客

举报

相关推荐

0 条评论