我对DataSource
和SessionFactory
之间的区别感到困惑。
我认为SessionFactory
是检索会话的管理员(实际上我猜这是与数据库的连接)。
DataSource
的方法为getConnection()
“尝试与此DataSource对象表示的数据源建立连接。”
这意味着DataSource
对象总是直接与数据库一起工作?
如果我有一个连接池,DataSource
会要求池连接?或者它会尝试获得与数据库的另一个连接。
事实上DataSource
和SessionFactory
是否相同?两者都尝试提供会话/连接?
答案 0 :(得分:1)
Datasource维护连接池,建立连接,知道如何连接等,
用户在服务器(如websphere / weblogic)或spring / hibernate配置文件中配置数据源。无论哪种方式,您都可以在应用程序启动期间将此数据源的句柄提供给sessionfactory。
SessionFActory是一个隐藏所有细节的接口,例如打开连接/关闭连接。在您的开发时间内,您不必担心加载驱动程序/关闭连接/打开等这些小事情,因此您可以专注于业务逻辑/其他重要的事情。