gpt4 book ai didi

java - 使用 JDBC 提示输入用户名/密码 : where is that prompt coming from and where do my properties go?

转载 作者:太空宇宙 更新时间:2023-11-04 07:30:06 27 4
gpt4 key购买 nike

我正在使用 JDBC 和 IBM 工具箱来连接到 AS400 服务器上的表。当我建立连接时,我没有向 URL 提供用户名或密码,因此我希望系统提示用户。我不想硬编码任何密码或自动输入管理员密码。坏主意。如此迅速。我将所有其他设置放入属性对象中并将其发送出去:

prop = setProperties(false, //ensure the server always prompts for logon information
"","",SCHEMA);
connection = DriverManager.getConnection("jdbc:as400://" + IP_ADDRESS, prop);

我的属性设置函数如下所示:

private Properties setProperties(boolean local,String USER_ID,
String PASSWORD,String SCHEMA)
{
Properties prop = new Properties();
prop.put("naming", "system");
prop.put("errors", "full");
prop.put("libraries", SCHEMA + ", *LIBL");
if (!local) {
prop.put("user", USER_ID);
prop.put("password", PASSWORD);
}
return prop;
} // serverProperties

由于我不提供 un 或 pw,所以我得到了这个漂亮的小盒子:

username/password prompt

  1. 这个盒子从哪里来?这是 JDBC 的东西还是 IBM 工具箱的东西?我可以拦截它吗?我很好奇我是否可以剥皮。当我将此项目从桌面转换为 Android 时,我希望能够生成 Android UI(因为 Android 不知道 swing 或 awt)。

  2. 如果我选中这两个复选框,无论我打开和关闭多少个连接,我在这些 un​​/pw 字段中输入的内容都会保留。有没有办法从某处获取 un/pw 数据?我尝试获取连接属性对象,但所有字段对我来说都是空白。 IBM Toolbox properties documentation列出了期望的属性(目前我只对一般属性感兴趣),但实际上并没有告诉我在哪里可以检索这些属性。

这个

Properties prop = connection.getClientInfo();
System.out.print(prop.toString());

给我这个{ClientProgramID=, ClientUser=, ApplicationName=, ClientHostname=, ClientAccounting=}甚至没有接近我应该期待的。我不确定我的属性(property)去了哪里。

感谢您提供任何信息!

最佳答案

这是当连接 URL 中未提供明确的用户或密码时工具箱的默认提示:

General properties

如果您想要皮肤或以其他方式拥有更多控制权,您应该创建自己的自定义用户界面,并在打开连接时指定用户和密码属性。

请参阅IBM Toolbox for Java JDBC properties了解更多信息。

关于java - 使用 JDBC 提示输入用户名/密码 : where is that prompt coming from and where do my properties go?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17869053/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com