一、MySql數據庫
當向數據庫中插入一條數據的時候,默認是拿不到自增主鍵的值的, 需要設置如下兩個屬性才可以拿到主鍵值!
設置userGeneratedKeys屬性值為true:使用自動增長的主鍵。使用keyProperty設置把主鍵值設置給哪一個屬性
<insert id="addEmp" parameterType="com.neuedu.mybatis.bean.Employee" useGeneratedKeys="true" keyProperty="id" databaseId="mysql"> insert into tbl_employee(last_name,email,gender) values(#{lastName},#{gender},#{email}) </insert>
二、Oracle數據庫
1、需要在oracle數據庫中創建自增序列
create sequence emp_seq
start with 1;
2、在sql映射文件中配置:
order="BEFORE" :設置selectKey中包含的語句先執行
resultType:指定返回類型
keyProperty:將返回值賦值給指定的列
<!-- Oracle數據庫獲取主鍵自增 --> <insert id="insert" databaseId="oracle"> <selectKey keyProperty="id" resultType="int" order="before"> select emp_seq.nextval from dual </selectKey> insert into tbl_emp values(#{id},#{lastName},#{gender},#{email}) </insert>