首先,我知道最好的做法是在您的Web应用程序中使用单个数据库用户帐户,以利用连接池来保持应用程序的良好响应。但是,由于要求(因为在任何情况下都没有改变),我必须使用他或她的数据库账户来验证每个用户。Grails每用户数据库身份验证
上下文是一个在Android上运行的仓库管理应用程序,但从Web服务获取其数据,我可能要写在Grails中,除非这里的建议显示了我更适合我的需求的技术。由于应用程序的性质,用户可能只需要每天验证一次或两次,所以我想我可以简单地将连接保存在由密码连接的用户名的哈希码密钥的HashMap中。这应该允许应用程序保持与最佳实践相同或相似的性能级别。
现在,我的问题是在使用持久连接对象。我知道如果没有大量的定制,我将无法将它们用于GORM,所以我打算将它们与groovy.sql.Sql结合使用,因为大部分业务逻辑都在PL/SQL包中无论如何。
我的问题是如何处理它的连接对象的groovy.sql.Sql类?我会遇到由它关闭的Connections问题,还是我可以安全地使用我的HashMap来保持连接?
我不认为你可以安全地做到这一点。如果你的连接被数据库本身关闭(比如不活动)呢?你失去了连接并永远无法恢复,因为你需要它来访问数据库。 – 2012-08-17 14:56:21
好的。我还考虑实现一个类似连接池的构造来存储HashMap,它将处理意外的并发和DB关闭连接等事情。我只需要知道groovy.sql.Sql不会关闭它们。 – Stuporman 2012-08-17 15:08:45
大多数连接池也可以根据用户名和密码进行池化(或者只是传递它)。 – 2012-08-18 06:37:40