2017-03-20 95 views
1

预先感谢您的关注。在这里,我对作为初学者的jsp servlet和jdbc的mvc模式有很好的想法。我的情况是哪个地方更好地在servlet mvc中创建jdbc连接?

  • MySQL表的员工如此POJO类员工
  • EmployeeDao用于DAO操作
  • 服务类的登录&其他服务认证
  • 的Servlet来从jsp页面数据和呼叫服务

现在我不确定创建连接的最佳方式,我在下面找到了一些想法,

  1. 通过加载驱动程序在EmployeeDao构造函数中创建jdbc连接。用于创建dao对象和执行操作的服务,然后使用同一对象的方法销毁连接以关闭连接。
  2. 加载驱动程序并在servlet的init()方法中创建连接?如果是这样,那么我是否需要将在init中创建的连接对象传递给服务,以便它可以进一步传递dao?而servlet的destroy()将被用来关闭连接。
  3. 使用ServletListener或ServletContextListener来(没有这些简单的想法(需要学习一些文件)

直到现在我使用DAO类用于连接和加载驱动程序,但我需要优化它,使我的应用程序有效。纠正我,如果我误导的地方。感谢您

+0

理想的情况下,用一个框架来处理这一切为你 - 你所描述的约90%可用外的开箱即用的弹簧引导, Spring MVC和Spring Security。 – chrylis

+0

这些都不是。在需要时获得连接,并在交易完成后尽快提交。你不能(也不想)在服务并发请求的线程之间共享连接。 –

+0

为连接创建单独的包。建立功能来获取和关闭连接。无论何时你需要一个连接调用getConnection方法一旦你完成了你的事情,你可以调用closeConnection方法 –

回答

1

所以,最好的办法是下一个:

  1. 创建ServletContextListener
  2. 在contextInitialized方法中获取数据源连接池。
  3. 在contextInitialized方法中,创建所需的所有服务,并使用构造函数(比setters更可取)将dataSouce注入到服务中。
  4. 将所有服务放入ServletContext中。
  5. 在每个servlet的init方法中获取服务,即您需要用于指定的servlet。
  6. 快乐,并用它们:)
+0

是的,这是我正在寻找。如果有任何文件,请提供文件链接。 –

1

使用Spring MVC和Spring JDBC(用于处理DAO)是足以满足上述要求一起。

0

绝对Spring MVC的将是一个不错的选择。 但如果你必须在Servl中使用等MVC,那么你可以去下面的链接,这可能会对你有所帮助。

如果你只是想建立一个没有数据源的JDBC连接,去here

如果你想创建通过数据源,去here

+0

非常感谢。我知道Spring与Hibernate是更好的方式,但我被限制为继续使用servlet jdbc。 –