‘壹’ hibernate切换了不同的数据库,那hql还需要改动吗它会自动转换成对应数据库语言的sql吗
不需要改动。hql是独立于数据库的,hibernate切换数据库以后,除了jdbc的一些如地址、用户名、密码要换以外。
Hibernate支持不同的数据库主要是用方言也就是dialect的,对应就是hibernate.cfg.xml配置文件里的一个设置,比如 SQL Server的就是:
<propertyname="hibernate.dialect"value="org.hibernate.dialect.SQLServerDialect"/>
这里的org.hibernate.dialect.SQLServerDialect是hibernate带的或你自己提供的一个数据库数据类型映射的一个Java类,由它处理不同数据库的区别。
但是如果不同的数据库之间差别太大的话,即直接要写不同的SQL语句的话,Hibernate的dialect也处理不了。
‘贰’ hibernate采用什么设计模式切换数据源
Hibernate可以用在任何JDBC可以使用的场合,例如Java应用程序的数据库访问代码,DAO接口 的实现类,甚至可以是BMP里面的访问数据库的代码。从这个意义上来说,Hibernate和EB不是一个范畴的东西,也不存在非此即彼的关系。 二、Hibernate是一个和...