也就是说,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>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)