blob: fe5afeae75bc8e64e2cb7fca96a3be2391619e7d [file]
package org.casbin.adapter;
import org.casbin.spring.boot.autoconfigure.properties.CasbinExceptionProperties;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
/**
* @author liuyunsh@cn.ibm.com
* @version V1.0
* @date 2019/4/23
*/
public class DB2Adapter extends JdbcAdapter {
private static final String CHECK_TABLE_SQL = "select 1 from syscat.tables where tabname = upper('CASBIN_RULE')";
private static final String DROP_TABLE_SQL = "DROP TABLE CASBIN_RULE";
private static final String INIT_TABLE_SQL = "CREATE TABLE CASBIN_RULE (" +
" ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) ,"+
" PTYPE VARCHAR(255) NOT NULL ," +
" V0 VARCHAR(255) DEFAULT NULL ," +
" V1 VARCHAR(255) DEFAULT NULL ," +
" V2 VARCHAR(255) DEFAULT NULL ," +
" V3 VARCHAR(255) DEFAULT NULL ," +
" V4 VARCHAR(255) DEFAULT NULL ," +
" V5 VARCHAR(255) DEFAULT NULL ," +
" PRIMARY KEY (ID) " +
")";
/**
* @param jdbcTemplate
* @param autoCreateTable
*/
public DB2Adapter(JdbcTemplate jdbcTemplate, CasbinExceptionProperties casbinExceptionProperties, boolean autoCreateTable) {
super(jdbcTemplate, casbinExceptionProperties, autoCreateTable);
}
@Override
protected void initTable() {
try {
jdbcTemplate.queryForObject(CHECK_TABLE_SQL, Integer.class);
} catch (EmptyResultDataAccessException e) {
super.initTable();
}
}
@Override
protected String getInitTableSql() {
return INIT_TABLE_SQL;
}
@Override
protected String getDropTableSql() {
return DROP_TABLE_SQL;
}
}