hibernate.dialect是干嘛用的?
为了更好适配各种关系数据库。
dialect就是“方言”,因为hibernate是要把Java对象转换成关系数据库来描述的,而关系数据库虽然有一些统一的标准,如SQL-92等。
但是实际上各数据库如Oracle,MySQL,MS SQL Server等等为了提高性能或增加功能都提供了一些额外的标准或语法,因此,hibernate为了更好适配各种关系数据库,针对每种数据库都指定了一个方言dialect。
扩展资料:
hibernate核心接口:
1,Session接口:Session接口负责执行被持久化对象的CRUD操作,但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。
2,SessionFactory接口:SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够。
3,Configuration类:Configuration类负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。
4,Transaction接口:Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码
5,Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语句或SQL语句两种表达方式。
你可以看到hibernate里面实际上方言只是一个类,它里面将不同数据类型、SQL语法转换成hibernate能理解的统一的格式。但注意,如果没有对应的dialect,Hibernate是无法使用这种数据库进行对象关系转换的。
上次我用了个H2数据库,找到一个H2的dialect,就可以马上用起Hibernate了。