网站首页 > 技术文章 正文
最近整理了一些Java架构学习视频和大厂项目底层知识点,需要的同学欢迎私信我【Java】发给你~
1.mybatis基本结构
mybatis是目前很流行的一个ORM框架,它帮助开发者实现数据库记录和POJO对象之间的映射,简化了在开发过程对数据库的操作。
mybatis核心组件有以下几个:
- SqlSessionFactoryBuilder(构造器):它会根据配置信息或者代码来生成SqlSessionFactory(工厂接口)
- SqlSessionFactory:依靠工厂来生成SqlSession(会话)
- SqlSession:是一个既可以发送SQL去执行并返回结果,也可以获取Mapper的接口。
- SQL Mapper:是由Java接口和XML文件构成,需要给出对应的SQL和映射规则。
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>
搬运来源:网易工程师-张方宇
看到这里的小伙伴,如果你喜欢这篇文章的话,别忘了转发、收藏、留言互动!
最近我新整理了一些Java资料,包含个人精选的Java架构学习视频、大厂实战知识点、大厂内部面试题,如果你需要的话,欢迎私信我!
如果对文章有任何问题,欢迎在留言区和我交流~
猜你喜欢
- 2024-09-29 MybatisPlus—kotlin代码生成 mybatisplus 代码生成器
- 2024-09-29 Spring boot Mybatis 整合 springboot整合mybatis流程
- 2024-09-29 SpringBoot使用Mybatis-FreeMarker
- 2024-09-29 MyBatis自动生成Mapper插件 mybatis 生成mapper
- 2024-09-29 增强Mybatis常用方案 mybatis-plus扩展
- 2024-09-29 Mybatis的XML映射文件的继承问题 mybatis映射文件的主要元素及作用
- 2024-09-29 Mybatis 自动生成bean mybatis 自动生成bo
- 2024-09-29 深入理解Python生成器(Generators)
- 2024-09-29 如何避免出现 SQL 注入漏洞 怎样避免sql注入
- 2024-09-29 代码生成插件支持eclipse,IntelliJ Idea
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)