package com.shtao.ext.ibatis.common.util; public class DatabaseDialectMapping { public static String getMappingName(String productName) { if (productName.toLowerCase().indexOf("mysql") != -1) { return "mysql"; } if (productName.toLowerCase().indexOf("sqlserver") != -1) { return "sqlserver"; } if (productName.toLowerCase().indexOf("sql server") != -1) { return "sqlserver"; } if (productName.toLowerCase().indexOf("oracle") != -1) { return "oracle"; } if (productName.toLowerCase().indexOf("db2") != -1) { return "db2"; } return ""; } public static Paginator getPaginator(String productName) { if (productName.toLowerCase().indexOf("mysql") != -1) { return new MySqlPaginator(); } if (productName.toLowerCase().indexOf("sqlserver") != -1) { return new SqlserverPaginator(); } if (productName.toLowerCase().indexOf("sql server") != -1) { return new SqlserverPaginator(); } if (productName.toLowerCase().indexOf("oracle") != -1) { return new OraclePaginator(); } return new OraclePaginator(); } public static String getDialectResource(String resource, String productName) { String dialectMappingName = getMappingName(productName); StringBuffer buf = new StringBuffer(); int idx = resource.lastIndexOf('.'); if (idx != -1) { buf.append(resource.substring(0, idx)); } if (dialectMappingName != null && !dialectMappingName.equals("")) { buf.append("-").append(dialectMappingName); } buf.append(resource.substring(idx)); return buf.toString(); } public static String getDialectUrl(String url, String productName) { String dialectMappingName = getMappingName(productName); StringBuffer buf = new StringBuffer(); buf.append(url); if (dialectMappingName != null && !dialectMappingName.equals("")) { int idx = url.indexOf('?'); if (idx == -1) { buf.append('?'); } else { buf.append('&'); } buf.append("sql_dialect=").append(dialectMappingName); } return buf.toString(); } }