druid 连接oracle12c

记录一下

遇到的问题

ORA-28040 没有匹配的认证协议

$ORACLE_HOME\NETWORK\ADMIN\sqlnet.ora里面加上SQLNET.ALLOWED_LOGON_VERSION=8

密码正确却提示用户口令不对

此时只需要alter user_name identified by passwd ;修改一遍即可了。

其他问题(未遇到) 参考 https://bbs.csdn.net/topics/392200184

12c 不兼容太低版本的plsql

在sqlnet.ora文件新增
SQLNET.ALLOWED_LOGON_VERSION_SERVER=9
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=9

ORA-01017: invalid username/password; logon denied

在sqlnet.ora文件新增了SQLNET.ALLOWED_LOGON_VERSION_SERVER=n
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=n
后密码虽然支持n以上版本,但是此时由于密码规则事先写入,导致低版本客户端无法识别。
此时只需要alter user_name identified by passwd ;修改一遍即可了。

连接配置

username=manager
password=123
url=jdbc:oracle:thin:@//127.0.0.1:1521/system (jdbc:oracle:thin:@//{ip}:{端口(默认1521)}/{实例名})
driverClassName=oracle.jdbc.driver.OracleDriver

SELECT INSTANCE_NAME FROM V $INSTANCE; 查看实例名
SELECT NAME FROM V$DATABASE; 查看数据库名
连接渠道jar包在D:\Oracle\one\product\12.2.0\dbhome_1\jdbc\lib 选的ojdbc8

public class DBUtil {
    private static DBUtil dbUtil;
    private static DataSource dataSource;

    static {
        Properties properties = new Properties();
        try {
            String path = DBUtil.class.getClassLoader().getResource("db.properties").getPath();
            System.err.println(path);
            properties.load(new FileInputStream(new File(path)));
            dataSource= DruidDataSourceFactory.createDataSource(properties);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
    public static DBUtil getInstance(){
        if (dbUtil==null) dbUtil=new DBUtil();
        return dbUtil;
    }
    public DataSource getDataSource(){
        return dataSource;
    }
}

  

你可能感兴趣的:(java)