MyBatis入门学习总结

全文概述

MyBatis入门学习总结

一、前言

1.什么是MyBatis框架?

MyBatis是一个开源的持久化框架,用于将Java对象与数据库之间的映射关系进行配置和管理。它通过XML或注解的方式,将数据库操作语句与Java方法进行绑定,使得开发者可以通过简单的配置和调用,实现对数据库的增删改查操作。它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程
MyBatis提供了灵活的SQL映射语句配置,可以满足各种复杂的数据库操作需求。它支持动态SQL,可以根据条件拼接SQL语句,避免了硬编码SQL语句的繁琐和不灵活。
此外,MyBatis还提供了一级缓存和二级缓存机制,可以提高数据库访问性能。一级缓存是在同一个SqlSession内部的缓存,而二级缓存是多个SqlSession之间共享的缓存。
MyBatis的优点包括简化了数据库操作代码,提高了开发效率;灵活的SQL映射配置,便于维护和扩展;良好的性能和可靠性,适合大规模应用的开发等。
总之,MyBatis框架可以帮助开发者更轻松地进行数据库操作,并提供一些额外的功能来优化性能和维护。

二、MyBatis快速入门

1.环境搭建

使用MyBatis框架之前,需要先导入mybatis的jar包或者使用MAVEN的相关依赖
在这里插入图片描述

2.创建数据库和数据表

3.创建实体类

4.编写映射配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!--MyBatisDTD约束-->
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
mapper:核心根标签
namespace属性:名称空间
-->
<mapper namespace="StudentMapper">
<!--
select:查询功能的标签
id属性:唯一标识
resultType属性:指定结果映射对象类型
parameterType属性:指定参数映射对象类型
-->
<select id="selectAll" resultType="student">
SELECT * FROM student
</select>
</mapper>

5.编写核心配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!--MyBatisDTD约束-->
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--configuration 核心根标签-->
<configuration>
<!--引入数据库连接的配置文件-->
<properties resource="jdbc.properties"/>
<!--配置LOG4J-->
<settings>
<setting name="logImpl" value="log4j"/>
</settings>
<!--起别名-->
<typeAliases>
<typeAlias type="com.itheima.bean.Student" alias="student"/>
<!--<package name="com.itheima.bean"/>-->
</typeAliases>
<!--environments配置数据库环境,环境可以有多个。default属性指定使用的是哪个-->
<environments default="mysql">
<!--environment配置数据库环境 id属性唯一标识-->
<environment id="mysql">
<!-- transactionManager事务管理。 type属性,采用JDBC默认的事务-->
<transactionManager type="JDBC"></transactionManager>
<!-- dataSource数据源信息 type属性 连接池-->
<dataSource type="POOLED">
<!-- property获取数据库连接的配置信息 -->
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<!-- mappers引入映射配置文件 -->
<mappers>
<!-- mapper 引入指定的映射配置文件 resource属性指定映射配置文件的名称 -->
<mapper resource="StudentMapper.xml"/>
</mappers>
</configuration>

三、 MyBatis的相关API

1.Resources

org.apache.ibatis.io.Resources:加载资源的工具类。
在这里插入图片描述

2.SqlSessionFactoryBuilder

org.apache.ibatis.session.SqlSessionFactoryBuilder:获取 SqlSessionFactory 工厂对象的功能类
在这里插入图片描述

3. 工厂对象SqlSessionFactory

org.apache.ibatis.session.SqlSessionFactory:获取 SqlSession 构建者对象的工厂接口。
在这里插入图片描述

4. SqlSession会话对象

org.apache.ibatis.session.SqlSession:构建者对象接口。用于执行 SQL、管理事务、接口代理
在这里插入图片描述

四.MyBatis的映射配置文件

映射配置文件包含了数据和对象之间的映射关系以及要执行的 SQL 语句
在这里插入图片描述

五.MyBatis核心配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!--MyBatisDTD约束-->
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--configuration 核心根标签-->
<configuration>
<!--environments配置数据库环境,环境可以有多个。default属性指定使用的是哪个-->
<environments default="mysql">
<!--environment配置数据库环境 id属性唯一标识-->
<environment id="mysql">
<!-- transactionManager事务管理。 type属性,采用JDBC默认的事务-->
<transactionManager type="JDBC"></transactionManager>
<!-- dataSource数据源信息 type属性 连接池-->
<dataSource type="POOLED">
<!-- property获取数据库连接的配置信息 -->
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql:///db1" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<!-- mappers引入映射配置文件 -->
<mappers>
<!-- mapper 引入指定的映射配置文件 resource属性指定映射配置文件的名称 -->
<mapper resource="StudentMapper.xml"/>
</mappers>
</configuration>

1.数据库连接配置文件引入

在核心配置文件中添加

<!--引入数据库连接的配置文件-->
<properties resource="jdbc.properties"/>

创建jdbc.properties文件

<!-- property获取数据库连接的配置信息 -->
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />

2.为实体类起别名

常见实体类型的别名
在这里插入图片描述
具体起别名配置,添加到核心配置文件中

<!--起别名-->
<typeAliases>
<typeAlias type="com.bean.Student" alias="student"/>
<!--<package name="com.bean"/>-->
</typeAliase>

3.配置日志log4j

引入log4j的jar包
修改核心配置文件,添加以下内容
在这里插入图片描述
最后编写LOg4j的配置文件
在这里插入图片描述

六、接口代理

Mapper 接口开发需要遵循以下规范:

  1. Mapper.xml文件中的namespace与mapper接口的全限定名相同
  2. Mapper接口方法名和Mapper.xml中定义的每个statement的id相同
  3. Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql的parameterType的类型相同
  4. Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同

七、动态SQL

:查询
:插入
:修改
:删除
:where条件
:if判断
:循环
:sql片段抽取

八.分页插件

MyBatis可以使用第三方的插件来对功能进行扩展,分页助手PageHelper是将分页的复杂操作进行封装,使用简单
的方式即可获得分页的相关数据
步骤:
1.需要导入pagehelper的jar包或使用依赖
2.在核心配置文件中配置pagehelper插件

<plugin interceptor="com.github.pagehelper.PageHelper">
<!-- 指定方言 -->
<property name="dialect" value="mysql"/>
</plugin>

3.使用分页插件

分页插件的相关API
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

执笔浮云

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

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

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

打赏作者

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

抵扣说明:

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

余额充值