功能說明:mysql 主鍵id自增,並在返回對象中插入對應字段值html
DROP TABLE IF EXISTS `api_quartz`; CREATE TABLE `api_quartz` ( `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主鍵', `job_class_name` varchar(100) DEFAULT NULL COMMENT '須要執行定時任務的類的全路徑(包名和類名)', `job_group_name` varchar(40) DEFAULT NULL COMMENT 'job的分組名', `job_cron` varchar(40) DEFAULT NULL COMMENT '定時任務的時間間隔,可參考http://cron.qqe2.com/', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
<insert id="insertAndGetId" parameterType="ApiQuartz" useGeneratedKeys="true" keyProperty="id" keyColumn="id"> insert into api_quartz (job_class_name, job_group_name, job_name,job_cron) values (#{jobClassName,jdbcType=VARCHAR}, #{jobGroupName,jdbcType=VARCHAR}, #{jobName,jdbcType=VARCHAR},#{jobCron,jdbcType=VARCHAR}) </insert>
/** * 返回插入數據的主鍵id值 * @param apiQuartz * @return */ int insertAndGetId(ApiQuartz apiQuartz);
該接口的返回值爲1或0,分別表明插入成功或失敗(注意:不表明返回的主鍵id值)。這樣 apiQuartz
對象中,原先apiQuartz.getId
是 null
, 如今,將插入數據庫的主鍵id值賦給它,eg:apiQuartz.getId
是 7
java
import lombok.Data; import java.io.Serializable; /** * 實體類 對應 api_quartz 表,定時任務配置 */ @Data public class ApiQuartz implements Serializable { private static final long serialVersionUID = 7485426523275431367L; /** * 主鍵 */ private Long id; /** * 須要執行定時任務的類的全路徑(包名和類名) */ private String jobClassName; /** * 'job的分組名' */ private String jobGroupName; /** * '定時任務的時間間隔,可參考http://blog.csdn.net/yansong_8686/article/details/46991189' */ private String jobCron; }
useGeneratedKeys="true" 表示給主鍵設置自增加mysql
keyProperty="userId" 表示將自增加後的Id賦值給實體類中的userId字段。sql
parameterType="com.chenzhou.mybatis.User" 這個屬性指向傳遞的參數實體類數據庫
這裏提醒下,<insert></insert> 中沒有resultType屬性,不要亂加。api
實體類中uerId 要有getter() and setter(); 方法 (也能夠採用lombok插件完成)mybatis