2017-05-27 177 views
0

我想创建一个演示,但我没有得到如何实现, 可以任何身体帮助我配置它。休眠弹簧启动

我正在使用弹簧引导,并休眠。

我有这样的要求,首先我会通过表格获取数据库登录信息, 然后我将它保存到任何文件或任何其他来源。

现在我已经登录了数据库的详细信息, 现在我将允许hibernate连接我的数据库并创建表,并且其他查询将被执行。

但我面临着Hibernate的问题,如 项目开始就说明我的错误

产生的原因:java.sql.SQLException中:拒绝访问用户“根” @“localhost”的(使用密码:YES )

因为当项目开始时它会加载hibernate来创建表和结构。

但我想通过表单从用户获取数据库登录细节后执行此任务。

意味着我希望项目应该在没有数据库登录细节的情况下启动,并且休眠不会引发任何错误。

我想要解决这个问题。

+0

什么是你的分贝的用户名和密码? – y2k

+0

我认为你正在用这种方法让自己变得很难。我可以问一下你不想在应用程序属性中设置凭据的原因吗?你正在对付这个框架。也许这不应该与春天实施? –

+0

干草y2k!我开始时没有用户名和密码,它将由用户设置。 –

回答

0

我不认为可以在应用程序启动后配置数据库连接。但是我看到了两种可能的解决方案:

  • 首先,您需要对DataSource和EntityManager bean进行延迟初始化。所以你需要在手工模式下配置它们并用@Lazy对它们进行注释,并在你接收到db的登录名和密码后调用它们。但是仍然会有一个问题,就像你可以在应用程序执行期间连接到第二个db一样。所以,这种方式有效,但不推荐。
  • 第二种选择是不使用Hibernate,而是使用纯JDBC连接。这不能限制你的连接选项,给你一些自由,这就是为什么我强烈推荐这种方式。