Java数据源会话工厂
我对Java数据源会话工厂,java,hibernate,datasource,sessionfactory,Java,Hibernate,Datasource,Sessionfactory,我对DataSource和SessionFactory之间的区别感到困惑 我认为SessionFactory是一个用于检索会话的管理器(我猜实际上是与数据库的连接) DataSource具有方法getConnection() “尝试与此数据源对象表示的数据源建立连接。” 这意味着数据源对象始终直接与数据库一起工作 如果我有一个连接池,DataSource将向该池请求连接?或者它会尝试与数据库建立另一个连接 实际上,DataSource和SessionFactory是否相同?两者都试图提供会话/连
DataSource
和SessionFactory
之间的区别感到困惑
我认为SessionFactory
是一个用于检索会话的管理器(我猜实际上是与数据库的连接)
DataSource
具有方法getConnection()
“尝试与此数据源对象表示的数据源建立连接。”
这意味着数据源
对象始终直接与数据库一起工作
如果我有一个连接池,
DataSource
将向该池请求连接?或者它会尝试与数据库建立另一个连接
实际上,
DataSource
和SessionFactory
是否相同?两者都试图提供会话/连接?数据源维护连接池,建立连接,知道如何连接等
用户在服务器(如websphere/weblogic)或spring/hibernate配置文件中配置数据源。无论哪种方式,您都可以在应用程序启动期间将此数据源的句柄提供给sessionfactory
SessionFActory是一个界面,它隐藏了打开连接/关闭连接等所有细节。在整个开发过程中,您不必担心加载驱动程序/关闭连接/打开等小事情,因此您可以专注于业务逻辑/其他重要内容 你说的是什么
SessionFactory
类?我说的是Hibernate的SessionFactory
。因此SessionFactory
给你一个Hibernate会话,DataSource
给你一个JDBC连接。问题是什么?如果我有一个连接池,DataSource
将向池中请求连接?这是一个完全不同的问题,答案是您将它放在前面。通常在这种情况下,数据源是池。