【发布时间】:2017-08-11 08:55:14
【问题描述】:
提前感谢您的关注。在这里,作为初学者,我对 jsp servlet 和 jdbc 的 mvc 模式有很好的了解。我的情况是
- mysql表employee so pojo class Employee
- EmployeeDao 用于 dao 操作
- 用于验证登录和其他服务的服务类
- Servlet 从 jsp 页面获取数据并调用服务
现在我不确定创建连接的最佳方式,我在下面找到了一些想法,
- 通过加载驱动程序在 EmployeeDao 构造函数中创建 jdbc 连接。用于创建 dao 对象并执行操作,然后使用相同对象的方法 destroy 以关闭连接的服务。
- 在 servlet 的 init() 方法中加载驱动程序并创建连接?如果是这样,那么我是否需要将在 init 中创建的连接对象传递给服务,以便它进一步传递 dao?而servlet的destroy()将用于关闭连接。
- 使用 ServletListener 或 ServletContextListener(对这些不太了解(需要一些文档学习)
到目前为止,我一直在使用 Dao 类进行连接和加载驱动程序,但我需要对其进行优化并提高我的应用程序效率。如果我在某处误导,请纠正我。谢谢你
【问题讨论】:
-
理想情况下,使用一个为您处理所有这些的框架——您所描述的大约 90% 的内容可通过 Spring Boot、Spring MVC 和 Spring Security 开箱即用。
-
这些都不是。在需要时获取连接,并在事务完成后立即提交。您不能(也不想)在处理并发请求的线程之间共享连接。
-
为连接创建一个单独的包。建立函数以获取和关闭连接。每当您需要连接时,在完成您的操作后调用 getConnection 方法,您可以调用 closeConnection 方法
-
@JBNizet 是的,这是第一种情况。 EmployeeDao 在需要与数据库操作相关的服务时被服务调用。但是虽然没有。用户调用的与数据库事务相关的服务,单个应用程序多次打开和关闭数据库连接。所以我想做一次以降低复杂性。
-
@AnoopLL 是的,EmployeeDao 也做了同样的事情。它的构造函数设置连接,在事务和选择查询之后,同一个对象被强制调用destoyConnection()方法来关闭连接。
标签: java authentication servlets jdbc dao