如何让idea中的sql文件可重复读

SQL结构化查询语言(StructureQueryLanguage)是用于定义和管理关系数据库中数据的标准语言。
它是用户和数据库之间交互的接口。
下面以SQL语言为例,简单介绍一下Oracle数据库是如何执行SQL语句的。
1.基础阶段。
当用户执行一条SQL语句(这里主要指的是数据操作语言DML)时,该语句首先通过连接发送到Oracle服务器,然后服务器进程处理该语句。
服务器端处理SQL语句的过程主要步骤是:解析、执行、返回结果。
1、解析(波斯语)解析是指检查SQL语句的语法和语义,生成SQL语句的执行计划,并将SQL语句和执行计划存储在SGA的公共SQL区中。
在解析过程中,服务器进程会执行以下操作:搜索SGA的共享SQL区域,查看那里是否存在相同的SQL语句及其执行计划。
如果是,则直接执行SQL语句。
这可以提高Oracle性能。
如果缺少SQL语句,请检查SQL语法。
如果语法不正确,则向客户端返回语法错误消息。
如果语法正确,则通过查询数据字典来检查SQL语句的语义,以确定表名和列名是否正确。
如果表名和列名不正确,则会向客户端返回语义错误消息。
如果语义正确,则会在相应的对象上添加解析锁,以防止其他用户更改这些对象的结构(或删除它们)。
对象)在解析期间检查用户以查看他们是否具有访问相应对象的适当权限。
如果没有相应的权限,则会向客户端返回权限不足的错误。
如果具有适当的权限,SQL语句优化器将为该SQL语句确定最佳执行计划。
SGA区的SQL区。
分配空间并加载SQL语句和执行计划来执行。
2、执行是指服务器进程按照SQL语句的执行计划来执行该SQL语句。

在此期间,服务器进程会执行以下操作:判断包含被操作对象数据的数据块是否已被读入SGA数据缓存区域。
如果数据块在数据缓存中,则直接使用它。
如果该数据块不在数据缓存中,则从该数据文件对应的物理存储设备中读取该数据块,并在数据缓存中查找空闲数据块。
,将读取的数据放入update和delete语句中,并锁定需要修改或删除的行,以便在事务完成之前相同的行不会被其他进程修改。
对于select和insert语句,不需要锁定行,因为数据不会被修改。
3.返回结果。
对于运行时select语句,请求的结果(或标记的行)必须返回到用户进程。
添加查询结果需要排序,而排序需要使用共享池排序区甚至临时表空间的临时段。
查询结果始终以列表形式显示。
根据查询结果的大小,您可以一次全部返回,也可以分多个批次逐步返回。
对于其他DML语句,状态(例如执行是否成功)会仔细返回给用户进程。

JavaIDEA根据database以及脚本代码自动生成DO,DAO,SqlMapper文件

数据库自动生成插件在开发中发挥着重要作用。
本文主要介绍两种方法:基于数据库代码自动生成和使用mybatis-generator核心自动生成。
该插件根据数据库和脚本代码自动生成,允许用户通过去掉数据库表的前缀来自定义生成的类名,并支持取表注解、字段注解、主键获取。
相比mybatis-generator核心生成方式,该方式不需要将生成的文件代码嵌入到项目中,而是作为IDEA的脚本插件使用。
不过,当同时生成DO、DAO和SqlMapper文件时,mybatis-generator-core会更方便。
使用这种方法时,过程分为三个步骤:配置数据库、链接数据库、创建脚本文件、使用脚本生成代码。
首先配置数据库连接信息并选择数据源,例如MySql。
接下来,在scripts目录下新建三个文件,分别是生成DO、DAO、SQLMAPPER文件的脚本。
具体代码必须根据项目路径进行配置。
生成代码时的顺序是先生成DO文件,然后生成DAO文件,最后生成SqlMapper文件。
因为DAO文需要使用DO文件地址,而SqlMapper文件需要DO和DAO文件地址。
右键单击表格和对应的脚本文件,指定存储文件夹即可完成代码生成。
总而言之,使用这种方法的主要优点之一是能够按需生成代码,而无需将生成的代码集成到项目中。
通常DO文件都是采用这种方式生成的,而DAO和SqlMapper文件则是根据业务需要自己编写的。