All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.casbin.adapter.OracleAdapter Maven / Gradle / Ivy

package org.casbin.adapter;

import org.springframework.jdbc.core.JdbcTemplate;

/**
 * @author fangzhengjin
 * @version V1.0
 * @title: OracleAdapter
 * @package org.casbin.adapter
 * @description:
 * @date 2019/4/4 16:03
 */
public class OracleAdapter extends JdbcAdapter {

    private final static String INIT_TABLE_SQL = "CREATE TABLE CASBIN_RULE (" +
            "  PTYPE VARCHAR2(255) NOT NULL ," +
            "  V0 VARCHAR2(255) DEFAULT NULL ," +
            "  V1 VARCHAR2(255) DEFAULT NULL ," +
            "  V2 VARCHAR2(255) DEFAULT NULL ," +
            "  V3 VARCHAR2(255) DEFAULT NULL ," +
            "  V4 VARCHAR2(255) DEFAULT NULL ," +
            "  V5 VARCHAR2(255) DEFAULT NULL" +
            ");";
    private final static String DROP_TABLE_SQL = "DROP TABLE CASBIN_RULE;";
    private final static String CHECK_TABLE_EXIST = "SELECT COUNT(*) FROM USER_TABLES WHERE TABLE_NAME = UPPER('CASBIN_RULE');";

    public OracleAdapter(JdbcTemplate jdbcTemplate, boolean autoCreateTable) {
        super(jdbcTemplate, autoCreateTable);
    }

    @Override
    protected void initTable() {
        Integer count = jdbcTemplate.queryForObject(CHECK_TABLE_EXIST, Integer.class);
        if (count != null && count == 0) {
            super.initTable();
        }
    }

    @Override
    protected String getInitTableSql() {
        return INIT_TABLE_SQL;
    }

    @Override
    protected String getDropTableSql() {
        return DROP_TABLE_SQL;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy