update

自动生成小工具(二):根据建表sql自动生成增删改查sql语句文件

微笑、不失礼 提交于 2019-12-14 02:33:55
Mybatis自动生成插件虽然功能强大,但是也略显笨重。我自己开发了一个自动生成的小工具,更加简单,更加轻量级。 一共只有几百行代码,想改的话,直接修改即可。根据自己的实际情况,可以进行灵活的二次开发。 Talk is cheap,show me the code. 自己写的,可以直接跑。如有问题,请联系,谢谢。 一,程序入口核心类:GenSqlXml.java package cn.sephora.product.elasticsearch.service.impl; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.List; /** * 功能:根据mysql建表语句文件(XXX.sql),自动生成mapper文件(XXXMapper.xml) * @date 2019/12/13 * @address shanghai * */ public class GenSqlXml { /** * 源文件路径 */ private static final String SOURCE_FILE_PATH = "D:\\sourcefile\\"; /** * 源文件名称 */ private static final String

JPA: Spring Data JPA @OneToMany 注解参数 orphanRemoval,一对多删除详解

こ雲淡風輕ζ 提交于 2019-12-13 16:06:16
分析了OneToMany级联操作多方的插入、更新、删除。我们得到如下结论: 1、插入,建议一方设置mappedBy,好处是只会执行一条insert语句。不会执行多余的update外键的sql。 2、更新,没有区别 3、删除,一方设置mappedBy。一方维护的多方集合remove,多方显示删除。 orphanRemoval 插入和更新都没有什么问题。但是删除就有些奇怪了,一方和多方均要操作,如果看过前面文章分析,倒也是合情合理。但操作起来实在是麻烦,今天codereview时,研发小伙伴们也提出疑问。如果一方通过对多方集合的remove操作即触发删除(无需多方显式删除),那就方便多了,而且直观好理解。可惜通过前文的实验,发现设置了mappedBy,单纯的在集合中remove不会有任何效果;不设置mappedBy,集合中remove只会把多方的外键update为null。并不能达到删除的目的。 难道真的不行?我又打开OneToMany的代码,发现这么一个属性: /** * (Optional) Whether to apply the remove operation to entities that have * been removed from the relationship and to cascade the remove operation to * those

Mysql的多版本并发控制机制MVCC

对着背影说爱祢 提交于 2019-12-13 12:32:01
MySQL的MVCC机制 1、MVCC简介 1.1 MVCC是什么? MVCC,Multi-Version Concurrency Control,多版本并发控制。MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问; 1.2 MVCC是为了解决什么? 大多数的MYSQL事务型存储引擎,如,InnoDB,Falcon以及PBXT都不使用一种简单的行锁机制.事实上,他们都和MVCC–多版本并发控制来一起使用 大家都应该知道,锁机制可以控制并发操作,但是其系统开销较大,而MVCC可以在大多数情况下代替行级锁,使用MVCC,能降低其系统开销    众所周知,在MYSQL中,MyISAM使用的是表锁,InnoDB使用的是行锁。而InnoDB的事务分为四个隔离级别,其中默认的隔离级别REPEATABLE READ需要两个不同的事务相互之间不能影响,而且还能支持并发,这点悲观锁是达不到的,所以REPEATABLE READ采用的就是乐观锁,而乐观锁的实现采用的就是MVCC。正是因为有了MVCC,才造就了InnoDB强大的事务处理能力。 MVCC解决的问题是读写互相不阻塞的问题,每次更新都产生一个新的版本,读的话可以读历史版本。试想,如果一个数据只有一个版本,那么多个事务对这个数据进行读写是不是需要读写锁来保护? 一个读写事务在运行的过程中在访问数据之前先加读

八个有用的WordPress的SQL语句

ⅰ亾dé卋堺 提交于 2019-12-13 10:01:31
在过去的十年中,MySQL已经成为广受欢迎的数据库,而WordPress博客使用的是MySQL数据库,虽然使用插件可以解决一些问题,但是实现某些特殊任务的时候,在phpMyAdmin中执行SQL语句是最简洁的方法,这里就总结八个有用的WordPress系统的SQL语句,用于解决一些实际碰到的问题。 By:tony整理   1、创建备份数据库   备份数据库是首先要做的事情,只需要通过以下方法就可以简单备份数据库:   登录phpMyAdmin后。选择你的WordPress数据库,然后点击“导出”按钮,选择一种压缩方式(可以使用gzip)并单击“执行”按钮,当浏览器提示是否下载的时候,点“是”,将数据库文件下载到本地。   2、批量删除文章修订   WordPress2.6以后的版本增加了一个Post revisions功能,虽然有点用,但文章修订增加了你数据库的大小,我们可以选择批量删除。   登录phpMyAdmin后执行下面的SQL语句即可批量删除。 DELETE FROM wp_posts WHERE post_type = "revision";   3、批量删除垃圾评论   一个真实的故事是,我的一个朋友在网上建立了一个博客,有次他花了几天时间外出度假,没有上网,当他回来的时候,登录自己的博客,看到有5000多条评论等待审核,当然,大多数都是垃圾评论

cocos3.14 AssetmanagerEx使用的坑

爱⌒轻易说出口 提交于 2019-12-13 08:17:52
转自 https://www.cnblogs.com/zhangfeitao/p/6489345.html 1、Cocos2dx热更新因为文件名含有空格,ios下载失败bug修改 问题描述:   项目中偶尔遇到美术图片命名时不规范,导致图片名字含有空格。导致ios热更新时,遇到下载失败。 解决方案: 1.从新改名字(以后命名一定要规范) 2.空格转义 解决下载失败问题 url web 开发中通过问号(?)方式在浏览器地址栏中传值时。浏览器是通过“&”来区分问号后的参数个数的。 如果出现传值参数中带有“&”时,在接受页面就会出现错误,类似如下请求路径:/next.jsp?param1=hendhs89&furej & param2=sss 参数param1中含有转义字符“&” ,这样会导致被请求页的参数接收错误。 在传值前 通过 java.net.URLEncoder.encode(param1) 编码处理后,可将转义字符转为16进制; URL 中+号表示空格 %2B 空格 URL中的空格可以用+号或者编码 %20 / 分隔目录和子目录 %2F ? 分隔实际的 URL 和参数 %3F % 指定特殊字符 %25 # 表示书签 %23 & URL中指定的参数间的分隔符%26 = URL中指定参数的值 %3D ! URL中指定参数的值 %2 具体解决方案 1、AssetsManagerEx

MYSQL MVCC实现机制

99封情书 提交于 2019-12-13 01:09:51
1. MVCC简介 1.1 什么是MVCC MVCC是一种多版本并发控制机制。 1.2 MVCC是为了解决什么问题? 大多数的MYSQL事务型存储引擎,如,InnoDB,Falcon以及PBXT都不使用一种简单的行锁机制.事实上,他们都和MVCC–多版本并发控制来一起使用. 大家都应该知道,锁机制可以控制并发操作,但是其系统开销较大,而MVCC可以在大多数情况下代替行级锁,使用MVCC,能降低其系统开销. 1.3 MVCC实现 MVCC是通过保存数据在某个时间点的快照来实现的. 不同存储引擎的MVCC. 不同存储引擎的MVCC实现是不同的,典型的有乐观并发控制和悲观并发控制. 2.MVCC 具体实现分析 下面,我们通过InnoDB的MVCC实现来分析MVCC使怎样进行并发控制的. InnoDB的MVCC,是通过在每行记录后面保存两个隐藏的列来实现的,这两个列,分别保存了这个行的创建时间,一个保存的是行的删除时间。这里存储的并不是实际的时间值,而是系统版本号(可以理解为事务的ID),没开始一个新的事务,系统版本号就会自动递增,事务开始时刻的系统版本号会作为事务的ID.下面看一下在REPEATABLE READ隔离级别下,MVCC具体是如何操作的. 2.1简单的小例子 create table yang( id int primary key auto_increment, name

数据库乐观锁和悲观锁

喜欢而已 提交于 2019-12-13 00:12:33
转自:博客园 https://www.cnblogs.com/vianzhang/p/7922376.html 以下是转载的oracle和Mysql两种数据库悲观锁和乐观锁机制及乐观锁实现方式: 一、Oracle Oracle 数据库 悲观锁 与 乐观锁 是本文我们主要要介绍的内容。有时候为了得到最大的性能,一般数据库都有并发机制,不过带来的问题就是数据访问的冲突。为了解决这个问题,大多数数据库用的方法就是数据的锁定。 数据的锁定分为两种方法,第一种叫做悲观锁,第二种叫做乐观锁。什么叫悲观锁呢,悲观锁顾名思义,就是对数据的冲突采取一种悲观的态度,也就是说假设数据肯定会冲突,所以在数据开始读取的时候就把数据锁定住。而乐观锁就是认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让用户返回错误的信息,让用户决定如何去做。 先从悲观锁开始说。在SqlServer等其余很多数据库中,数据的锁定通常采用页级锁的方式,也就是说对一张表内的数据是一种串行化的更新插入机制,在任何时间同一张表只会插1条数据,别的想插入的数据要等到这一条数据插完以后才能依次插入。带来的后果就是性能的降低,在多用户并发访问的时候,当对一张表进行频繁操作时,会发现响应效率很低,数据库经常处于一种假死状态。而Oracle用的是行级锁,只是对想锁定的数据才进行锁定

Eclipse安装velocity插件

て烟熏妆下的殇ゞ 提交于 2019-12-12 22:15:25
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> http://veloeclipse.googlecode.com/svn/trunk/update/ 但无论如何装不上 Veloeclipse 插件,在添加插件时输入 Veloeclipse 的 Update 地址,总是无法列出该地址下的内容,不晓得是 Eclipse 的问题,还是 Veloeclipse 的问题! 只要在安装插件的界面中把 Group Items by Catagory 前打钩去掉就可以了。 于是url重新输入这个,结果就正常啦! 然后选择Veloeclipse,next后,会列出在网站上可以安装的features,选择Veloeclipse 来源: oschina 链接: https://my.oschina.net/u/158822/blog/80852

SQL学习之update语句

左心房为你撑大大i 提交于 2019-12-12 19:57:21
目录 参考源 SQL update 语句 示例数据 SQL update 参考源 简单教程 https://www.twle.cn/l/yufei/sql/sql-basic-update.html 菜鸟教程 https://www.runoob.com/sql/sql-update.html SQL update 语句 SQL update 语句 用于更新表中已存在的记录 单张表: UPDATE [ LOW_PRIORITY ] [ IGNORE ] table_reference SET assignment_list [ WHERE where_condition ] [ ORDER BY . . . ] [ LIMIT row_count ] 多张表: UPDATE [ LOW_PRIORITY ] [ IGNORE ] table_references SET assignment_list [ WHERE where_condition ] 注: SQL update 语句中的 where 子句 规定哪条记录或者哪些记录需要更新 如果省略了 where 子句, 所有的记录都将被更新 示例数据 CREATE DATABASE IF NOT EXISTS hardy_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900

数据库语法二之外键

て烟熏妆下的殇ゞ 提交于 2019-12-12 18:53:34
数据库语法二之外键 外键(******必备知识点******): 1、外键:用来建立两张表之间的关系 - 一对多 - 多对多 - 一对一 2、了解的知识点: - 修改表的操作 - 赋值表操作 研究表与表之间的关系: 1、定义一张员工表,员工部门表 id,name,gender,dep_name,dep_desc - 将所有数据存放在一张表中的弊端; 1、结构不清晰:---不致命 2、浪费空间:----不致命 3、可扩展性差----不可忽视的弊端 - 类似于将所有的python代码存放到一个py文件中,强耦合到一起 - 拆分表解决以上问题 - 需要给两张表之间,建立一种强有力的关系,这就得使用外键 -!!!!注意:如何确认表与表之间的关系是(一对多,多对多,一对一) - 注意:要确立两张表之间的关系,必须站在两个位置去思考 - 站在员工表达位置:多个员工能否对应一个部门?能! 员工与部门:多 对 一 员工表单向 多 对 一部门表 - 站在部门表的位置:多个部门能否对应一个员工? 不能!!! 总结:凡是单向 多 对 一 的表达关系,称之为 一对多的外键关系。因为python中的mysql中没有多对一的关系 - 外键:语法: foreign key(当前表中建立关系的外键字段) references 被关联表名(id) #####注意:创建两张表 必须先建立被关联表,在建立关联表