MyBatis(MyBatis-plus)对于Sql方言的支持
Dialect
Dialect意为方言,通常指代SQL方言。SQL方言(或者数据库方言)指的是用于访问数据库的结构化查询语言的变体,根据具体的数据库系统不同,也可能会支持不同的方言。
就比如MySQL与Oracle两种数据库不同,数据库对于SQL变体语言也不同。
而MyBatis作为可以拥有多个数据源的框架,对于数据源之间的处理也是格外的重要,数据源代表多个数据库,如果这些数据库并不是同一个数据库厂商,那么方言就会对SQL查询结果造成影响。
-
在低版本的MyBatis中,会在mapping或者session包下有一个Dialect接口,由它来负责方言的管理,我们也可以来实现Dialect接口来自定义方言类。但是随着版本的更迭,这样的方言处理方式逐渐被淘汰,现在统一是由数据源管理,逐渐Dialect接口被优化,不建议使用。
-
但是在MyBatis-plus中还拥有Dialect的影子。
package com.baomidou.mybatisplus.annotation; public enum DbType { MYSQL("mysql", "MySql数据库"), MARIADB("mariadb", "MariaDB数据库"), ORACLE("oracle", "Oracle11g及以下数据库(高版本推荐使用ORACLE_NEW)"), ORACLE_12C("oracle12c", "Oracle12c+数据库"), DB2("db2", "DB2数据库"), H2("h2", "H2数据库"), HSQL("hsql", "HSQL数据库"), SQLITE("sqlite", "SQLite数据库"), POSTGRE_SQL("postgresql", "Postgre数据库"), SQL_SERVER2005("sqlserver2005", "SQLServer2005数据库"), SQL_SERVER("sqlserver", "SQLServer数据库"), DM("dm", "达梦数据库"), XU_GU("xugu", "虚谷数据库"), KINGBASE_ES("kingbasees", "人大金仓数据库"), PHOENIX("phoenix", "Phoenix HBase数据库"), GAUSS("zenith", "Gauss 数据库"), CLICK_HOUSE("clickhouse", "clickhouse 数据库"), GBASE("gbase", "南大通用(华库)数据库"), GBASE_8S("gbase-8s", "南大通用数据库 GBase 8s"), /** @deprecated */ @Deprecated GBASEDBT("gbasedbt", "南大通用数据库"), /** @deprecated */ @Deprecated GBASE_INFORMIX("gbase 8s", "南大通用数据库 GBase 8s"), OSCAR("oscar", "神通数据库"