MyBatis框架基础学习及入门案例(2)

目录

一、数据库建表(tb_user)以及添加数据。

(1)数据库与数据表说明。

(2)字段与数据说明。

二、创建模块(或工程)、导入对应所需依赖坐标。

三、编写MyBatis核心主配置文件。(解决JDBC中"硬编码"问题)

(1)resources目录下新建mybatis-config.xml文件。

(2)最外层标签。完善内层标签、。

(3)加载外部属性文件。(如:db.properties)

(4)结合创建的映射文件。最终MyBatis核心主配置文件的全部内容。

四、编写书写SQL语句的映射文件。(mapper包下的.XML文件)

(1)新建UserMapper.xml文件。

(2)最外层标签。属性namespace。

(3)内层常用标签。

(4)最终UserMapper配置文件的内容。

五、正式编码。

(1)定义对应(表tb_user)的POJO(实体)类。

(2)测试类中加载MyBatis核心主配置文件。(获取SqlSessionFactory对象)

(3)获取SqlSession对象、执行SQL语句。(selectList()方法)

(4)释放资源。

(5)测试类运行结果。


  • 本篇博客的主要内容是完成一个简单的MyBatis入门案例。

一、数据库建表(tb_user)以及添加数据。

(1)数据库与数据表说明。
  • 数据库:mybatis01、数据表:tb_user。

(2)字段与数据说明。
  • 主键:uid。
  • 其他字段:username、password、gender、addr。
  • 添加几条测试数据即可。

二、创建模块(或工程)、导入对应所需依赖坐标。


  • 其他所需的依赖坐标。
 <dependencies>
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.6</version>
        </dependency>

        <!--连接数据库——MySQL驱动-->
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>

        <!--单元测试坐标-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>
            <scope>test</scope>
        </dependency>

    </dependencies>

三、编写MyBatis核心主配置文件。(解决JDBC中"硬编码"问题)

(1)resources目录下新建mybatis-config.xml文件。
  • 注意:没有这2个快捷创建选项需要自己手动配置模板。(不像spring配置文件自动有)
  • 我这里选择的是mybatis-config。(代表新建MyBatis核心主配置文件)(IDEA手动设置好的模板)


  • 也可以直接手动创建.XML文件。然后去官网复制粘贴。


  • MyBatis核心主配置文件的头声明如下。(与映射文件是不同的)


(2)最外层标签<configuration>。完善内层标签<environments>、<mappers>。
  • 注意标签<environments>内<environment>标签内的所有内容就是一个模板。不需要记忆复制粘贴后,稍加修改数据库连接信息即可
  • 所使用的模板中的“development”代表了MyBatis的默认与具体的运行环境是开发环境配置
  • 其次指定了事务管理的方式为 JDBC 事务管理器。
  • 定义了数据源的类型为“POOLED”,即使用连接池来管理数据库连接。

(3)加载外部属性文件。(如:db.properties)
  • 主要包含数据库连接的配置信息。(如注册驱动、用户名、密码、URL 等)

  • 这样可以在MyBatis主配置文件中通过${}占位符引用这些属性值,便于维护和修改。


  • value属性对应的值使用${}占位符引用。


(4)结合创建的映射文件。最终MyBatis核心主配置文件的全部内容。
  • 注意<mapper>标签的resource属性是相对于类路径。所以直接写与主配置文件路径平级即可。
<?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">
<!--MyBatis主配置文件的根标签-->
<configuration>

    <properties resource="db.properties"></properties>

    <environments default="development">
        <!-- 可以配置多个environment -->
        <!--这里指定了默认的运行环境为development,即开发环境-->
        <environment id="development">
            <!-- 使用jdbc事务管理-->
            <transactionManager type="JDBC"/>
            <!--配置数据库连接信息-->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driverClassName}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>

    <!--所有映射文件的路径-->
    <mappers>
        <!--加载书写SQL的映射文件-->
        <mapper resource="UserMapper.xml"></mapper>
    </mappers>

</configuration>

四、编写书写SQL语句的映射文件。(mapper包下的.XML文件)

(1)新建UserMapper.xml文件。
  • 一般xxx的映射文件的命名方式为:“实体类名称+Mapper”组成。

  • 注意我这里创建的方式与创建MyBatis主核心配置文件的方式一样。(IDEA手动设置好的模板)
  • 选择mybatis-mapper。(前面提到,映射文件的头声明与MyBatis主核心配置文件不一致)


  • 映射文件的头声明默认自动生成。


  • 当然也可以手动去官网复制粘贴,再修改即可。


(2)最外层标签<mapper>。属性namespace。
  • 单输入一个"<"就知道其最外层标签有几个、分别是啥。


  • namespace:命名空间。作用就是对sql进行分类管理。(比如有很多个xxxMapper.xml其中有相同的id。而命名空间就可以再以区分)

  • 注意:使用mapper代理方法开发时。namespace需要特殊设置!!


(3)内层常用标签。
  • <select>、<update>、<delete>、<insert>、<resultMap>。
  • <resultMap>很重要,后面再学习
  • <select>、<update>、<delete>、<insert>就是对应的查询、更新、删除、插入。

  • id就是唯一标识该查询的SQL语句
  • resultType就是查询返回的结果。这里查询所有用户当然是返回的数据包装成一个一个实体类(User)对象。所以这就需要有对应的实体类(User)。


(4)最终UserMapper配置文件的内容。
  • 这里的namespace="test"。供测试使用。
  • 后面的学习通常都是:namespace="接口的全限定名"。接口中就有对应的抽象方法。
<?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.fs.pojo.User">
        select * from tb_user
    </select>
</mapper>

五、正式编码。

(1)定义对应(表tb_user)的POJO(实体)类。
  • 注意实体类的属性要与数据库字段一致。

  • 这里使用Lombok帮助快速开发。(不需要手动提供构造器、setter、getter、toString等方法)。
  • 导入Lombok对应依赖的坐标。


  • 在对应User实体类上使用注解@Data使Lombok生效。

package com.fs.pojo;

import lombok.Data;

@Data
public class User {
    private Integer uid ;
    private String username;
    private String password;
    private String gender;
    private String addr;
}

(2)测试类中加载MyBatis核心主配置文件。(获取SqlSessionFactory对象)


(3)获取SqlSession对象、执行SQL语句。(selectList()方法)
  • 查询单个或多条记录——>使用selectList()方法。返回的是一个集合。方法中传的参数为:namespace.id。(id为mapper映射文件中对应<select>标签唯一标识SQL的id
  • 查询单个记录——>使用selectOne()方法。


(4)释放资源。


(5)测试类运行结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

岁岁岁平安

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

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

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

打赏作者

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

抵扣说明:

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

余额充值