Content

postgresql如何兼容MySQL if函数(post meridiem)满满干货

文章摘要

本文主要介绍了如何在MySQL、PostgreSQL和Oracle数据库中使用JDBC进行批量插入操作。文章详细列出了不同数据库的插入方法:MySQL和PostgreSQL使用`insert into`语句,而Oracle则使用`insert all`。同时,文章强调了构造参数包的重要性,例如在MySQL和PostgreSQL中,参数包需要包含`id`、`name`、`age`和`gender`字段,并使用`#{}`进行值绑定。Oracle的插入方法则需要在`insert all`语句后附加`select * from dual`来实现。文章还提到这些方法可以在开发中提高效率,减少手动输入的工作量。

<insert id=”insertBatch” parameterType=”java.util.List”> ? ? <if test=”_databaseId==’mysql’ or _databaseId==’postgresql'”> ? ? ? ? insert into table_name? ? ? ? ? (<include refid=”insertBatchColumn”></include>) ? ? ? ? values ? ? ? ? <foreach collection=”list” item=”item” index=”index” separator=”,” > ? ? ? ? ? ? (<include refid=”insertBatchValue”></include>) ? ? ? ? </foreach> ? ? </if> ? ? <if test=”_databaseId==’oracle'”> ? ? ? ? insert all ? ? ? ? <foreach collection=”list” item=”item” index=”index” separator=””> ? ? ? ? ? ? into table_name? ? ? ? ? ? ? (<include refid=”insertBatchColumn”></include>) ? ? ? ? ? ? values (<include refid=”insertBatchValue”></include>) ? ? ? ? </foreach> ? ? ? ? select * from dual ? ? </if> </insert> ? <sql id=”insertBatchColumn”> ? ? id,name,age,gender </sql> <sql id=”insertBatchValue”> ? ? #{item.id,jdbcType=VARCHAR}, #{item.name,jdbcType=VARCHAR},? ? ? #{item.age,jdbcType=INTEGER},#{item.gender,jdbcType=INTEGER} </sql>