全文概述
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" ?>
<!--MyBatis的DTD约束-->
<!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" ?>
<!--MyBatis的DTD约束-->
<!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" ?>
<!--MyBatis的DTD约束-->
<!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 接口开发需要遵循以下规范:
- Mapper.xml文件中的namespace与mapper接口的全限定名相同
- Mapper接口方法名和Mapper.xml中定义的每个statement的id相同
- Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql的parameterType的类型相同
- 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