如何动态设置数据源?在Spring中如下所示:
@Bean(name = "dataSource")
public DriverManagerDataSource dataSource() {
DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource();
driverManagerDataSource.setDriverClassName("com.mysql.jdbc.Driver");
driverManagerDataSource.setUrl("jdbc:mysql://localhost:3306/userbase");
driverManagerDataSource.setUsername("root");
driverManagerDataSource.setPassword("root");
return driverManagerDataSource;
}我是否可以将这些功能从Spring导入到JavaEE7企业应用程序中?
发布于 2016-06-03 21:37:33
任何JavaEE7实现都具有用于定义在服务器的JNDI目录中具有名称的javax.sql.DataSource的工具。
您可以使用javax.annotations.Resource注释在应用程序客户机类中注入对它的引用,并使用它,如下所示:
public class SomeDatabaseClient {
@Resource("jdbc/myDataSource")
javax.sql.DataSource myDataSource;
public void useTheDatabase(String username, String password) {
try (Connection con = myDataSource.getConnection(username, password);
PreparedStatement ps = con.prepareStatement(...);
ResultSet rs = ps.executeQuery() {
// process the result set
...
} catch (SQLException e) {
// handle errors
}
}
}如果不需要动态指定数据库凭据,可以将它们包含在服务器的DataSource定义中。
请注意,安全地管理用户密码并非易事,因此您需要一个很好的理由才能以这种方式使用它们。
如果需要的话,您还可以将Spring Framework配置设置为像这样使用相同的代码。
https://stackoverflow.com/questions/37572662
复制相似问题