Java Orac-01005 null密码:Oracle认为什么是空的?
我有一段代码,大致如下:Java Orac-01005 null密码:Oracle认为什么是空的?,java,jdbc,oracle11g,Java,Jdbc,Oracle11g,我有一段代码,大致如下: Properties props = new Properties(); props.put("user", user.getUserName()); props.put("password", user.getPassword()); //add more properties //... Connection conn = DriverManager.getConnection("url",props); 因此,我无法看到可以将null password属性传递到
Properties props = new Properties();
props.put("user", user.getUserName());
props.put("password", user.getPassword());
//add more properties
//...
Connection conn = DriverManager.getConnection("url",props);
因此,我无法看到可以将null password属性传递到连接中。如果密码为null
,则user.getPassword()
不仅会引发异常,而且在props
上设置null
值会引发NPE。这将导致对DriverManager.getConnection(..)
的调用被绕过。但有时,连接尝试失败,Oracle返回
ORA-01005 ORA-01005:密码为空;拒绝登录
我可以按需重新创建此功能的唯一方法是注释掉设置密码的行。否则,我看不出null
值是如何到达Oracle的
是否有一些Oracle报告为null
的值不是严格的Javanull
s
我正在使用oracle.jdbc.OracleDriver
连接到oracle 11.2.0.3.0
非常感谢您的帮助 我认为Oracle jdbc驱动程序认为空字符串等同于NULL。我认为Oracle jdbc驱动程序认为空字符串等同于NULL。Oracle数据库在这个意义上不同于Java。它将字符串空值视为null。
另请参见Oracle数据库与Java在这方面的不同。它将字符串空值视为null。
另请参见是否尝试使用空字符串?是否可能重复使用以下方法调试代码:System.out.println(“用户:>”+用户.getUserName()+“”+用户.getPassword()+”是否尝试使用空字符串?是否可能重复使用以下方法调试代码:System.out.println(“用户:>”+用户.getUserName()+“”+用户.getPassword() + "