相关文章推荐
满身肌肉的凉面  ·  System.getProperty("ja ...·  2 年前    · 
强健的柚子  ·  gcc g++ 版本查看 - 简书·  2 年前    · 
含蓄的大象  ·  node.js - npm install ...·  2 年前    · 
  1. insert 操作,用 foreach 标签做循环插入操作,两种不同的写法,注意foreach位置不同。
@Insert(" <script> "
		+ " <if test = 'list != null and list.length > 0' >"
		+ " <foreach collection='list ' item='val' index='index' separator=';'>"
		+ " insert into table(id, bm, mc, jgbm) values "
		+ " <![CDATA[ (#{id}, #{val.bm}, #{val.mc}, #{jgbm}) ]]>"
		+ " </foreach>"
		+ " </if>"
		+ " </script>")
void insData(AbcBean bean);
@Insert("<script> "
		+ " insert into tms_rc_lkxx(id,rcid,jgbm) values "
		+ " <foreach collection='param1' item='item' index='index' separator=','> "
		+ " <![CDATA[ (f_newid(),#{item.rcid},#{param2.jgbm}) ]]> "
		+ " </foreach> "
		+ "</script> ")
int addLkxx(List<LkblBean> param1,LkblczBean param2);
  1. select操作,用foreach配合in语句,查询bm1在jsidList里的数据
@Select("<script>"
   		+ " <if test = 'jsidList != null and jsidList.size > 0' >"
   		+ " select bm fsdq "
   		+ " from tms_jg_bmb "
   		+ " where jgbm like #{zxbm}||'%' and bm1 in"
   		+ " <foreach collection='jsidList' item='val' index='index' open='(' separator=',' close=')'>"
   		+ " #{val}"
   		+ " </foreach>"
   		+ " </if>"
   		+ "</script>")
String getFsdq(@Param("zxbm") String zxbm, @Param("jsidList") List<String> jsidList);
  1. update操作,使用foreach循环更新list里的对象。
@Update("<script>" +
	" <foreach collection='list' item='item' index='index' separator=';' " +
	" open=\"\" close=\"\"> " +
	" update rctable set rczt = #{item.bglx}" +
	" where rcid = #{item.rcid} " +
	" </foreach> " +
	"</script>")
void updateRcxxzt(List<RcztBgBean> list);
  1. update操作,使用if判断字段是否需要更新
@Update("<script> "
		+ " update lkxx "
		+ " <trim prefix='set' suffixOverrides=','> "
		+ " <if test='slklx != null and \"\" != slklx'> lklx=#{slklx}, lklxmc=#{slklxmc}, </if>"
		+ " <if test='slkzksj != null and \"\" != slkzksj'> zksj=to_timestamp(#{slkzksj}, 'yyyy-MM-dd'), </if>"
		+ " </trim>"
		+ " where rcid = #{rcid} "
		+ "</script>")
void xglkxx(LkxxBean bean);
				
foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。 foreach元素的属性主要有 item,index,collection,open,separator,close。 item集合中每一个元素进行迭代的别名, index表示在迭代过程中,每次迭代到的位置, open该语句以什么开始, separator在每行数据之间以什么符号作为分隔符,有 union、union all、 逗号 close以什么结束 在使用foreach候最关键的也是最容易出错的就是collectio
微信公众号(年更选手):数据闲逛人 | Github开源项目:数分/数挖study路线 https://github.com/jc-dian/python_data_analysis 01-18 PostgreSQL的plpgsql编程语言和Oracle PL/SQL编程语言类似,是功能很强大的数据库编程语言。 JSON是PG支持的非结构化类型,那么如何在PLPGSQL中LOOP JSON数组呢? https://www.postgr...
PostgreSQL 提供了丰富的数据类型。用户可以使用 CREATE TYPE 命令在数据库中创建新的数据类型。PostgreSQL 的数据类型被分为四种,分别是基本数据类型、复合数据类型、域和伪类型。 ​ 基本数据类型是数据库内置的数据类型,包括integer、char、varchar等数据类型。表6-1列出了`PostgreSQL提供的所有基本数据类型。复合数据类型是用户自己定义的,使用CREATE TYPE命令就能创建一个复合数据类型。域是一种特殊的基本数据类型,它由基本数据类型加上一个约束条
postgresql 批量插入数据(含数组使用)postgresql 批量插入数据(含数组使用)具体sql语句 postgresql 批量插入数据(含数组使用使用postgreSql 进行批量插入数据,因为有些字段是不能自动生成的,所以使用数组进行循环插入 具体sql语句 do $$ declare i integer; -- 定义使用变量 testArr varchar array; -- 数组定义 begin -- 开始 i :=2200; testArr := array['张三','李四',
结构控制和循环介绍: 作为编程语言中极为重要的知识,控制和循环可以降低代码量和减少人的工作量。在PL/PGSQL中实现了常用的控制结构和循环方法,灵活使用确实可以用来提高数据库查询的效率。 结构控制: 1. 结构:IF ... THEN ... ELSIF ... THEN ... ELSE ... END IF CREATE OR REPLACE FUNCTION mydb.mysc.learn_conditional01(IN num integer,OUT result_st...
1、先看问题,提示的语法错误,在" " 附近,(对于这个提示我也挺懵!);能明显看出mybatis生成的sql之间存在很多空格; 2、把控制台的sql单独拿出来测试,发现把空格都去掉就没问题了。 去点后如下图 3、看一下mapper.xml中的sql,看了好多遍真没发现什么毛病; select * from sz_zcxx <where> <if test="zclbmc != null"> and zclbmc = #{zclbmc}
要将 JSONB 字段的字符串类型转换为数组类型,您可以使用 PostgreSQL 的 JSONB 函数。具体来说,您可以使用 JSONB_ARRAY_ELEMENTS 函数将 JSONB 字段的值转换为数组,然后使用 CAST 函数将数组元素转换为字符串类型。以下是示例代码: ```sql SELECT CAST(jsonb_array_elements('["foo", "bar", "baz"]') AS TEXT[]); 在上面的代码中,我们将 JSONB 字符串 `["foo", "bar", "baz"]` 转换为数组类型,并使用 CAST 函数将数组元素转换为字符串类型。此查询将返回一个包含字符串元素的数组。 如果您想从一个 JSONB 字段中提取数组,您可以将 JSONB 字段名替换为字段值,如下所示: ```sql SELECT CAST(jsonb_array_elements('["foo", "bar", "baz"]') AS TEXT[]); 这将返回一个包含 JSONB 字段值中的字符串元素的数组