84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
ringa_lee
调用持久层前,自己生成一个UUID,放到对象里并且方法返回该UUID。
dao接口定义 save 方法 时 尝试 修改返回类型 为String 看看有没有接收到。默认是返回影响行数的。如果配置了selectKey 可能会返回 selectKey的内容 。
在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数;如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能
针对Sequence主键而言,在执行insert sql前必须指定一个主键值给要插入的记录,如Oracle、DB2,可以采用如下配置方式:
<insert id="add" parameterType="vo.Category"> <selectKey resultType="java.lang.Short" order="BEFORE" keyProperty="id"> SELECT SEQ_TEST.NEXTVAL FROM DUAL </selectKey> insert into category (name_zh, parent_id, show_order, delete_status, description ) values (#{nameZh,jdbcType=VARCHAR}, #{parentId,jdbcType=SMALLINT}, #{showOrder,jdbcType=SMALLINT}, #{deleteStatus,jdbcType=BIT}, #{description,jdbcType=VARCHAR} ) </insert>
mybatis默认返回的是影响的行数,要返回id要另外写。如果是oracle的数据库,uuid可以写sys_guid()
如果是mysql的就要跟楼上说的一样,先给一个id再保存
不用在代码中提前生成一个uuid,理解一下selectKey 中keyProperty属性就可以解决这个问题。
这样在selectKey生成时,产生的UUID会set进当前对象中
调用持久层前,自己生成一个UUID,放到对象里并且方法返回该UUID。
dao接口定义 save 方法 时 尝试 修改返回类型 为String 看看有没有接收到。
默认是返回影响行数的。如果配置了selectKey 可能会返回 selectKey的内容 。
在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数;如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能
针对Sequence主键而言,在执行insert sql前必须指定一个主键值给要插入的记录,如Oracle、DB2,可以采用如下配置方式:
mybatis默认返回的是影响的行数,要返回id要另外写。
如果是oracle的数据库,uuid可以写sys_guid()
如果是mysql的就要跟楼上说的一样,先给一个id再保存
不用在代码中提前生成一个uuid,理解一下selectKey 中keyProperty属性就可以解决这个问题。
这样在selectKey生成时,产生的UUID会set进当前对象中