前言:开发中需要获取上一次插入时自动生成的ID,需要各种数据库的实现,参看logback源码,简单记录一下。
1、定义SQLDialect接口。
package ch.qos.logback.core.db.dialect;
/**
* @author Ceki Gülcü
*
*/
public interface SQLDialect {
String getSelectInsertId();
}
2、MySQL的SQLDialect。
package ch.qos.logback.core.db.dialect;
/**
*
*
* @author Ceki
*
*/
public class MySQLDialect implements SQLDialect {
public static final String SELECT_LAST_INSERT_ID = "SELECT LAST_INSERT_ID()";
public String getSelectInsertId() {
return SELECT_LAST_INSERT_ID;
}
}
3、 H2的SQLDialect。
package ch.qos.logback.core.db.dialect;
/**
* The H2 dialect.
*
* @author Ceki Gülcü
*/
public class H2Dialect implements SQLDialect {
public static final String SELECT_CURRVAL = "CALL IDENTITY()";