首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

docker快速使用各个版本PostgreSQL数据库

https://www.postgresql.org/ https://yum.postgresql.org/rpmchart.php https://yum.postgresql.org/11/redhat...官网 https://www.postgresql.org/,点击菜单栏上 Download ,可以看到这里包含了很多平台安装包,包括 Linux、Windows、Mac OS等 。...各个安装包:https://www.postgresql.org/ftp/source/ Linux 我们可以看到支持 Ubuntu 和 Red Hat 等各个平台,点击具体平台链接,即可查看安装方法...: 点击上图中 file browser,我们还能下载 PostgreSQL 最新源码。...:lhr@192.168.66.35:54327/postgres 其中-h参数指定服务器地址,默认为127.0.0.1,默认不指定即可,-d指定连接之后选中数据库,默认也是postgres,-U指定用户

6.2K10

【DB宝69】docker快速使用各个版本PostgreSQL数据库

https://www.postgresql.org/ https://yum.postgresql.org/rpmchart.php https://yum.postgresql.org/11/redhat...官网 https://www.postgresql.org/,点击菜单栏上 Download ,可以看到这里包含了很多平台安装包,包括 Linux、Windows、Mac OS等 。...各个安装包:https://www.postgresql.org/ftp/source/ Linux 我们可以看到支持 Ubuntu 和 Red Hat 等各个平台,点击具体平台链接,即可查看安装方法...: 点击上图中 file browser,我们还能下载 PostgreSQL 最新源码。...:lhr@192.168.66.35:54327/postgres 其中-h参数指定服务器地址,默认为127.0.0.1,默认不指定即可,-d指定连接之后选中数据库,默认也是postgres,-U指定用户

1.6K40

【SpringBoot DB 系列】Jooq 之新增记录使用姿势

项目依赖 关于如何创建一个 SpringBoot 项目工程,不再本文描述范围内,如有兴趣可以到文末个人站点获取 在这个示例工程,我们选用 h2dabase 作为数据库(方便有兴趣小伙伴直接获取工程源码之后...数据库初始化 我们借助jooq-codegen-maven插件来自动生成数据库相关代码,对这一段逻辑感兴趣小伙伴可以参考博文:【DB 系列】Jooq 代码自动生成 后文中使用表结构如下 DROP...Record 实体类新增方式 jooq ,借助自动生成 Record 类来实现新增是最简单 case,如下 private static final PoetTB table = PoetTB.POET...InsertQuery 方式 上面两种写法比较常见,而直接使用 InsertQuery 方式,实际业务开发可能并没有上面的优雅,但某些特殊场景下还是很有用 /** * 不使用自动生成代码来原生插入数据...链式批量保存 同样是类 sql 链式插入方式,需要注意一下与前面的单条记录链式插入区别,下面这种写法和 sql 批量插入写法及其相似 /** * 类sql写法,批量添加 * * @param

98120

【SpringBoot DB 系列】Jooq 之新增记录使用姿势

项目依赖 关于如何创建一个 SpringBoot 项目工程,不再本文描述范围内,如有兴趣可以到文末个人站点获取 在这个示例工程,我们选用 h2dabase 作为数据库(方便有兴趣小伙伴直接获取工程源码之后...数据库初始化 我们借助jooq-codegen-maven插件来自动生成数据库相关代码,对这一段逻辑感兴趣小伙伴可以参考博文:【DB 系列】Jooq 代码自动生成 后文中使用表结构如下 DROP...Record 实体类新增方式 jooq ,借助自动生成 Record 类来实现新增是最简单 case,如下 private static final PoetTB table = PoetTB.POET...InsertQuery 方式 上面两种写法比较常见,而直接使用 InsertQuery 方式,实际业务开发可能并没有上面的优雅,但某些特殊场景下还是很有用 /** * 不使用自动生成代码来原生插入数据...链式批量保存 同样是类 sql 链式插入方式,需要注意一下与前面的单条记录链式插入区别,下面这种写法和 sql 批量插入写法及其相似 /** * 类sql写法,批量添加 * * @param

52410

H2数据库教程_h2数据库编辑数据库

据报道,当使用带有防火墙的卡巴斯基7.0时,H2控制台通过IP地址连接时非常慢。解决方法是使用“localhost”进行连接。...查询面板中键入SQL命令,然后单击[运行]。结果显示命令下方。 插入表名称或列名称 要将表和列名称插入脚本,请单击树项目。如果在查询为空时单击表,则会SELECT * FROM ...添加。...NetBeans中使用H2 使用Netbeans SQL执行窗口时存在一个已知问题:执行查询之前,SELECT COUNT(*) FROM 运行表单另一个查询。...使用H2和jOOQ jOOQJDBC之上添加了一个薄层,允许类型安全SQL构造,包括高级SQL,存储过程和高级数据类型。jOOQ将您数据库模式作为代码生成基础。...主页和jOOQ教程更多详细信息 Web应用程序中使用数据库 有多种方法可以从Web应用程序访问数据库

5.2K30

JOOQ框架常见SQL注入场景

它作为一个静态工厂去生成数据库表表达式,列表达式,条件表达式和其他查询部分。...+ name + "%")); 查看对应日志已经进行了参数绑定: 0x02 常见SQL注入场景 2.1 Plain SQL API 一定程度上,JOOQ确实解决了大部分场景SQL注入问题。...但是jOOQ并不支持每个数据库所有SQL功能,JOOQ还存在很多字符串sql拼接API,例如如下and(String s),可以看到JOOQ給对应API标记了@PlainSQL注解,注释里也提醒了会存在...尝试报错注入,成功获取数据库用户名: 对于Plain SQL情况,官方文档也进行了说明: 下面再列举一些常见场景: 2.1.1 执行任意 SQL、函数和存储过程 查询where 子句中经常需要包含执行任意...将确保不会编译使用带有@PlainSQL注释API,并抛出对应错误: java: [Plain SQL usage not allowed at current scope.

7610

SQL SERVER 空格“坑” VS PostgreSQL 类似的坑怎么避开

虽然公司大力往开源数据库上转移,但传统数据库使用在一段时间还是会存在,最近开发亲们报出一个怪异现象,就是外部传进来得字符用在末尾带有 \u0001 (SQL SERVER 里面这又特殊含义可以理解为...使得字符处理SQL 认为 字符串末尾带空格和 不带空格对比 大多数比较是相等。...如果还不清晰,我们下面在做一个更直白比较 OK 说到这里,上边带有末尾空格和不带有空格字符串处理很多情况是一样,实际上是不一样。另外想 trim同学 也可以省省心了,照样还是不一样。...反过来我们比对一下 POSTGRESQL ,主要原因是有2 1 作为传统企业,或金融企业,POSTGRESQL 收费到开源数据库转换,会节省大量的人力物力(尤其对开发来说) 2 PG 火 (言简意赅...上进行,也是通过插入带有空格,和不带空格数据来进测试 插入两条数据 id 为 2带有空格 通过上图比较和证明,PG可以清晰查询中分辨那个值里面包含空格,那些不是, PostgreSQL

2.6K30

经验:MySQL数据库,这4种方式可以避免重复插入数据!

,测试SQL语句如下,当插入本条数据时,MySQL数据库会首先检索已有数据(也就是idx_username索引),如果存在,则忽略本次插入,如果不存在,则正常插入数据: ?...02 on duplicate key update 即插入数据时,如果数据存在,则执行更新操作,前提条件同上,也是插入数据字段设置了主键或唯一索引,测试SQL语句如下,当插入本条记录时,MySQL数据库会首先检索已有数据...03 replace into 即插入数据时,如果数据存在,则删除再插入,前提条件同上,插入数据字段需要设置主键或唯一索引,测试SQL语句如下,当插入本条记录时,MySQL数据库会首先检索已有数据(idx_username...,这种方式适合于插入数据字段没有设置主键或唯一索引,当插入一条数据时,首先判断MySQL数据库是否存在这条数据,如果不存在,则正常插入,如果存在,则忽略: ?...往期推荐 一条 SQL 引发事故 为什么像王者荣耀这样游戏 Server 不愿意使用微服务? explain都不懂,还说会SQL调优?

4.4K40

一条更新SQLMySQL数据库是如何执行

点击关注"故里学Java" 右上角"设为星标"好文章不错过 前边《一条SQL查询MySQL是怎么执行我们已经介绍了执行过程涉及处理模块,包括连接器、分析器、优化器、执行器、存储引擎等。...首先,执行语句前要先连接数据库,这是第一步连接器工作,前面我们也说过,当一个表有更新时候,跟这个表有关查询缓存都会失效,所以我们一般不建议使用查询缓存。...> update table demo set c = c + 1 where ID = 2; 接下来我们来看看update语句执行流程,图中浅色框表示存储引擎执行,深色框代表是执行器执行...我们这里也借助上边例子看一下,假设当前ID=2这一行值为0 ,update过程写完了第一个日志后,第二个日志还没写期间发生了crash,会怎么样? 先写redolog后写binlog。...如果写完buglog之后,redo log还没写完时候发生 crash,如果这个时候数据库奔溃了,恢复以后这个事务无效,所以这一行值还是0,但是binlog里已经记载了这条更新语句日志,以后需要用

3.8K30

再见MyBatis-Plus,推荐一个优雅 MyBatis 增强框架

项目特征 轻量,框架只依赖 Mybatis 再无其他第三方依赖 只增强,支持 Entity 增删改查及分页查询 内置 Db + Row 工具,可以无需实体类进行增删改查 几乎支持市面上所有的数据库,还可以通过方言持续扩展...支持多(联合)主键,以及不同主键内容生成策略 支持逻辑删除设置、更新或插入默认值配置 支持数据脱敏和字段脱敏 支持字典回写,将数据库枚举值转换为页面显示名称 支持多租户 MyBatis-Flex...数据缓存 Spring Boot 配置类上启用 Spring Cache 缓存 @EnableCaching @Configuration public class CacheConfig { }...public User getById(Serializable id) { return super.getById(id); } // 根据方法名加查询 SQL...项目地址 https://github.com/mybatis-flex/mybatis-flex 总结 mybatis-flex是Mybatis增强版,几乎集成了mybatis plus、jooq

46020

【SpringBoot DB系列】Jooq批量写入采坑记录

【SpringBoot DB系列】Jooq批量写入采坑记录 前面介绍了jooq三种批量插入方式,结果最近发现这里面居然还有一个深坑,我以为批量插入居然不是一次插入多条数据,而是一条一条插入.....,基本上对应就是jooq三种常见用法 直接借助自动生成Record类来操作 类sql拼接写法,基本上我们平时sql怎么写,这里就怎么用 InsertQuery:借助jooq提供各种Query...日志验证 上面三种写法,第一种批量插入方式,并不是我们传统理解一次插入多条记录,相反它是一条一条插入,我们可以通过开启jooq日志来查看一些执行sql情况 配置文件 application.properties...从上面的sql来看,后面两个确实是一次插入多条,但是第一个,也没有将具体执行sql打印出来,所有不看源码的话,也没有办法实锤是一条一条插入 为了验证这个问题,一个简单解决办法就是批量插入两条数据,...第一条正常,第二条异常,如果第一条插入成功,第二条失败那就大概率是单个插入了 // 表结构,name字段最大为20,下面插入第二条数据长度超限 try { this.batchSave(

1.5K10

【SpringBoot DB系列】Jooq批量写入采坑记录

[logo.jpg] 【SpringBoot DB系列】Jooq批量写入采坑记录 前面介绍了jooq三种批量插入方式,结果最近发现这里面居然还有一个深坑,我以为批量插入居然不是一次插入多条数据,而是一条一条插入...,基本上对应就是jooq三种常见用法 直接借助自动生成Record类来操作 类sql拼接写法,基本上我们平时sql怎么写,这里就怎么用 InsertQuery:借助jooq提供各种Query...日志验证 上面三种写法,第一种批量插入方式,并不是我们传统理解一次插入多条记录,相反它是一条一条插入,我们可以通过开启jooq日志来查看一些执行sql情况 配置文件 application.properties...来看,后面两个确实是一次插入多条,但是第一个,也没有将具体执行sql打印出来,所有不看源码的话,也没有办法实锤是一条一条插入 为了验证这个问题,一个简单解决办法就是批量插入两条数据,第一条正常,第二条异常...,如果第一条插入成功,第二条失败那就大概率是单个插入了 // 表结构,name字段最大为20,下面插入第二条数据长度超限 try { this.batchSave(Arrays.asList

1.1K00

Java 程序员常犯 10 个 SQL 错误

这比Java编写正确SQL可能更加容易。 性能表现。数据库应该比你算法处理起来更加快.而且更加重要是,你不必再去传递数百万条记录了。...处理大量数据,效果尤其明显。 解决方法: 仅仅使用这些语句,那么一个工具(例如JOOQ)就可以模拟这些语句操作。...一些数据库理解其它形式更新插入(UPSERT)语句, 如 MYSQL重复主键更新语句,但是MERGE在数据库确是很强大,很重要,以至于大肆扩展SQL标准,例如SQL SERVER。...很多情形下都工作得很好,如聚合数据需要浓缩常规数据,那么就在join子查询中使用group查询。 但是SQL2003定义了窗口函数,这个很多主流数据库都实现了它。...如果你所有记录都插入到同一个表时,那么就创建一个带有一条SQL语句以及附带很多值集合插入批处理语 句。

1.5K20

数据库PostrageSQL-服务器配置设置参数

通过SQL影响参数 PostgreSQL提供了三个SQL命令来建立配置默认值。...一旦一个客户端连接到数据库PostgreSQL会提供两个额外SQL命令( 以及等效函数)用以影响会话本地配置设置: SHOW命令允许察看所有参数的当前值。...除了单个参数设置,postgresql.conf文件可以包含包括指令,它指定要读入和处理另一个文件,就好像该文件被插入到配置文件这个点。这个特性允许一个配置文件被划分成物理上独立部分。...包括文件或目录可以被用来逻辑上分隔数据库配置各个部分,而不是用一个很大postgresql.conf文件。考虑一个有两台数据库服务器公司,每一个都有不同内存量。...当多个服务器把它们配置全部存储一个位置(例如在一个版本控制仓库)时,这可以帮助消除歧义(版本控制下存储数据库配置文件是另一个值得考虑好方法)。

2.2K20

POSTGRESQL 带时区日期技术与狠活

最近最热门歇后语就是,“技术与狠活”, 数据库POSTGRESQL 日期数据有什么技术与狠活,咱们今天来说说。...从技术角度来说, 基于POSTGRESQL 数据库数据格式,相对于其他数据库,类型是丰富这里主要是POSTGRESQL 时间是可以带有时区,也就是with zone 。...首先POSTGRESQL 带有时区日期格式包含了,时间和日期两种,这里官方建议大家使用日期类型而不是直接使用时间类型带有时区类型。...具体时间显示,如果是带有时区时间,是带有 + - 号和数字在后面表达具体时区信息了,如上面表达是 东八时区 4 什么时候不能使用时区 with time zone 进行分区表过程,...,并且我们要在不同数据库中使用当地时间来进行时间表达 1 我们分别在不同数据库插入当地时间 2 我们分别通过UTC 时间,转换到当地时间 3 我们通过本地时间转换到当地时间

2.5K20

再见 MyBatis!我选择 JDBCTemplate!

这符合ORM最初理想,ORM认为Java程序员使用OO思维方式,和关系数据库思维方式差距巨大,为了填补对象和关系思维方式鸿沟,必须做一个对象到关系映射,然后Java对象世界,程序员可以使用纯对象思维方式...但据说Ebean不排斥SQL,可以直接用SQL查询,也可以用类似JOOQDSL方式代码构造SQL语句(还是JPQL语句?),但没用过Ebean,所以具体细节不清楚。...数据库DSL编程另一个主要卖点是变化适应性强,数据库表结构开发过程通常会频繁发生变化,传统非DSL编程,字段名只是一个字符串,如果字段名或者类型改变之后,查询语句没有相应修改,编译不会出错,也容易被开发人员忽略...三、跨数据库移植 Hibernate和JPA使用hql和JPQL这类数据库无关中间语言描述查询,可以不同数据库无缝移植,移植到一个SQL有巨大差别的数据库通常不需要修改代码或者只需要修改很少代码...JOOQ根据目标数据库转换SQL语句特性,使得不同数据库之间移植时候,只需要修改很少代码,明显优于MyBatis。

2.7K40
领券