mybatis动态sql实现批量插入

mybatis动态sql实现批量插入,第1张

默认情况下, #{}语法会促使MyBatis生成PreparedStatement属性并且使用PreparedStatement的参数(=?)来设置值。如果你想直接将未更改的字符串代入到sql中,可以使用${}。

也就是说,MyBatis看到 #{}会认为你在给sql中的变量赋值,就像JDBC编程中给问号赋值一样(比如MyBatis会判断它的类型,并自动在前后加单引号)。而当MyBatis看到${}的时候会直接将之替换成变量的值而不做任何处理。

所以在使用${}的时候,不需要像#{}一样写"jdbcType=VARCHAR"之类的属性。

对于支持自动生成主键的数据库(如SQL Server),可以采用以下方式:

<insert id="xxx" parameterType="yyy" useGeneratedKeys="true" keyProperty="id">.... </insert>

对于不支持自动生成主键(如Oracle),可以采用以下方式:

<insert id="xxx" parameterType="yyy"><selectKey keyProperty="id" resultType="long" order="BEFORE">select my_seq.nextval from dual </selectKey>.... </insert>


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11832228.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存