1.mybatis基本结构
mybatis是目前很流行的一个ORM框架,它帮助开发者实现数据库记录和POJO对象之间的映射,简化了在开发过程对数据库的操作。
mybatis核心组件有以下几个:
- SqlSessionFactoryBuilder(构造器):它会根据配置信息或者代码来生成SqlSessionFactory(工厂接口)
- SqlSessionFactory:依靠工厂来生成SqlSession(会话)
- SqlSession:是一个既可以发送SQL去执行并返回结果,也可以获取Mapper的接口。
- SQL Mapper:是由Java接口和XML文件构成,需要给出对应的SQL和映射规则。
Java架构学习视频和大厂项目底层知识点,需要的同学欢迎私信我发给你~一起学习进步!
2.mybatis xml文件主要标签
- select 查询语句,传递多个参数时可以使用"@Param"注解,也可以使用java bean
- insert 插入语句
- update 更新语句
- delete 删除语句
- sql 允许定义一部分SQL然后在各个地方应用
- resultMap 用于描述从数据库结果集来加载对象
3.mybatis缓存
mybatis支持一级缓存和二级缓存,在没有配置的默认情况下,只开启一级缓存。
- 一级缓存:在参数和SQL完全一致的情况下,使用同一个SqlSession对象,多次SQL查询,往往只会执行一个SQL,后面的若干次查询都会从缓存中取数据(在缓存没超时的情况下)。
- 二级缓存:在使用不同的SqlSession对象时,因为不同的SqlSession是相互隔离的,所以即使用相同的mapper、参数和方法,它还是hui会再次发送SQL到数据库执行。而二级缓存可以解决这个问题,二级缓存是在SqlSessionFactory层面共享的。
4.mybatis自动生成mapper
- 安装idea mybatis插件,插件需要破解
- 按照实际的表名,修改下面的示例生成文件
示例生成文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration PUBLIC
"-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
<generatorConfiguration>
<!-- !!!! Driver Class Path !!!! -->
<classPathEntry location="C:\Users\zhangfangyu1\.m2\repository\mysql\mysql-connector-java\5.1.29\mysql-connector-java-5.1.29.jar"/>
<context id="context" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressAllComments" value="false"/>
<property name="suppressDate" value="true"/>
</commentGenerator>
<!-- !!!! Database Configurations !!!! -->
<jdbcConnection driver connectionURL="jdbc:mysql://10.122.174.131:3306/activitypromotion" userId="activity_dev" password="uIneXoLlWl0l0eE9MCq4"/>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- !!!! Model Configurations !!!! -->
<javaModelGenerator targetPackage="com.netease.kaola.pop.core.pojo" targetProject="src/main">
<property name="enableSubPackages" value="false"/>
<property name="trimStrings" value="false"/>
</javaModelGenerator>
<!-- !!!! Mapper XML Configurations !!!! -->
<sqlMapGenerator targetPackage="mybatis" targetProject="src/main">
<property name="enableSubPackages" value="false"/>
</sqlMapGenerator>
<!-- !!!! Mapper Interface Configurations !!!! -->
<javaClientGenerator targetPackage="com.netease.kaola.pop.core.dao" targetProject="src/main" type="XMLMAPPER">
<property name="enableSubPackages" value="false"/>
</javaClientGenerator>
<!-- !!!! Table Configurations !!!! -->
<table tableName="tb_pop_oplog" domainObjectName="PopOperateLog" enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="false"
enableUpdateByExample="false"/>
</context>
</generatorConfiguration>
有任何问题欢迎留言交流哦~
整理总结不易,如果觉得这篇文章有意思的话,欢迎转发、收藏,给我一些鼓励~
有想看的内容或者建议,敬请留言!