发布时间:2022-09-02 文章分类:编程知识 投稿人:王小丽 字号: 默认 | | 超大 打印
目录
  • 1、MyBatis概述

    • 1.1 MyBatis概述
    • 1.2 JDBC缺点
    • 1.3 MyBatis优化
  • 2、MyBatis快速入门
  • 3、Mapper代理开发

    • 3.1 Mapper代理开发概述
    • 3.2 使用Mapper代理要求
    • 3.3 案例代码实现
  • 4、核心配置文件

    • 4.1 多环境配置
    • 4.2 类型别名
  • 5、配置文件实现CRUD

    • 5.1 环境准备
    • 5.2 查询所有数据
    • 5.3 查询
    • 5.4 多条件查询
    • 5.6 添加数据与MyBatis事务
    • 5.7 修改
    • 5.8 删除数据
    • 5.9 MyBatis参数传递
  • 6、通过注解实现CRUD

阅读提示:

本文默认已经预装预装maven

1、MyBatis概述

1.1 MyBatis概述

1.2 JDBC缺点

1.3 MyBatis优化

2、MyBatis快速入门

3、Mapper代理开发

3.1 Mapper代理开发概述

解决形如上述测试类中List<User> users = sqlSession.selectList("test.selectAll");的硬编码问题

3.2 使用Mapper代理要求

3.3 案例代码实现

4、核心配置文件

4.1 多环境配置

在核心配置文件的 environments 标签中其实是可以配置多个 environment ,使用 id 给每段环境起名,在 environments 中使用 default='环境id' 来指定使用哪儿段配置。我们一般就配置一个 environment 即可

<?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="priv.dandelion.entity"/>
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <!-- 采用JDBC的事务管理方式 -->
            <transactionManager type="JDBC"/>
            <!-- 数据库连接信息 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <!-- JDBC连接数据库,SSL,Unicode字符集,UTF-8编码 -->
                <property name="url" value="jdbc:mysql:///mybatis?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </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="123456"/>
            </dataSource>
        </environment>
    </environments>
    <!-- 加载SQL映射文件 -->
    <mappers>
        <!-- <mapper resource="priv/dandelion/mapper/UserMapper.xml"/>-->
        <package name="priv.dandelion.mapper"/>
    </mappers>
</configuration>

4.2 类型别名

映射配置文件中的resultType属性需要配置数据封装的类型(类的全限定名),繁琐

Mybatis 提供了 类型别名(typeAliases) 可以简化这部分的书写

<configuration>
    <!-- name属性未实体类所在的包 -->
    <typeAliases>
        <package name="priv.dandelion.entity"/>
    </typeAliases>
</configuration>
<mapper namespace="priv.dandelion.mapper.UserMapper">
    <!-- resultType的值不区分大小写 -->
    <select id="selectAll" resultType="user">
        select * from tb_user;
    </select>
</mapper>

5、配置文件实现CRUD

5.1 环境准备

5.2 查询所有数据

本节要点:

  1. 测试类的编写方式
  2. 解决数据库字段和实体类字段名不同的问题

5.3 查询

本节要点:

  1. MyBatis的SQL映射文件中,SQL语句如何接收对应参数

5.4 多条件查询

本节要点:

  1. 多条件查询:如果有多个参数,需要使用@Paran("SQL参数占位符名称")注解
  2. 多条件的动态条件查询:对象属性名称要和参数占位符名称一致
    (详见5-2解决数据库字段和实体类字段名不同的问题)
  3. 单条件的动态条件查询:保证key要和参数占位符名称一致

5.6 添加数据与MyBatis事务

5.7 修改

5.8 删除数据

5.9 MyBatis参数传递

6、通过注解实现CRUD