需要在 运行 时间(前端)在 netbeans 中提供动态主机名、用户名和密码
Need to give dynamic hostname, username and password at run time(front end) in netbeans
我正在尝试使用 netbeans 创建一个 java 应用程序。我想在运行时输入 JDBC 连接详细信息(class 名称、主机名、用户名和密码),以便应用程序更有效。有什么办法吗?
netbeans中不行,eclipse中可以吗?
通过动态输入主机名,我的意思是 JDBC class 名称、主机名和端口以及用户名和密码。我的主要目标是从前端(java 应用程序本身)输入这些值。可以吗?或者我听说配置文件,如果从前端不可能,谁能告诉我如何使用这些创建和使用这些配置文件?
当然可以,跟你的IDE没关系。诀窍是确保始终将依赖项传递给需要它们的对象。它被称为 inversion of control。
这是一个将 DataSource 作为依赖项的示例。
public class DbAccessClass {
private final DataSource dataSource;
public DbAccessClass(DataSource dataSource) {
this.dataSource = dataSource;
}
public doSomething() {
dataSource.getConnection();
// use connection
}
}
然后您所要做的就是向用户显示一个对话框以输入这四个字符串并构造您的 DataSource
并将其传递给构造您的 DbAccessClass
。这是一个使用 BasicDataSource.
的示例
String driver = // get driver field value from UI
String url = // get url field from UI
String user = // get user field
String pass = // get pass field
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName(driver);
ds.setUrl(url);
ds.setUsername(user);
ds.setPassword(pass);
new DbAccessClass(ds);
如果您的用户确实知道连接详细信息,我只会采用这种方法。通常将它们隐藏在配置文件中更有价值。
我正在尝试使用 netbeans 创建一个 java 应用程序。我想在运行时输入 JDBC 连接详细信息(class 名称、主机名、用户名和密码),以便应用程序更有效。有什么办法吗?
netbeans中不行,eclipse中可以吗?
通过动态输入主机名,我的意思是 JDBC class 名称、主机名和端口以及用户名和密码。我的主要目标是从前端(java 应用程序本身)输入这些值。可以吗?或者我听说配置文件,如果从前端不可能,谁能告诉我如何使用这些创建和使用这些配置文件?
当然可以,跟你的IDE没关系。诀窍是确保始终将依赖项传递给需要它们的对象。它被称为 inversion of control。
这是一个将 DataSource 作为依赖项的示例。
public class DbAccessClass {
private final DataSource dataSource;
public DbAccessClass(DataSource dataSource) {
this.dataSource = dataSource;
}
public doSomething() {
dataSource.getConnection();
// use connection
}
}
然后您所要做的就是向用户显示一个对话框以输入这四个字符串并构造您的 DataSource
并将其传递给构造您的 DbAccessClass
。这是一个使用 BasicDataSource.
String driver = // get driver field value from UI
String url = // get url field from UI
String user = // get user field
String pass = // get pass field
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName(driver);
ds.setUrl(url);
ds.setUsername(user);
ds.setPassword(pass);
new DbAccessClass(ds);
如果您的用户确实知道连接详细信息,我只会采用这种方法。通常将它们隐藏在配置文件中更有价值。