public static Builder builder() { return new Builder() { @Override protected SQLTemplates build(char escape, boolean quote) { return new MySQLTemplates(escape, quote); } }; }
public MySQLTemplates(char escape, boolean quote) { super(MYSQL_RESERVED_WORDS, "`", escape, quote); setArraysSupported(false); setParameterMetadataAvailable(false); setLimitRequired(true); setSupportsUnquotedReservedWordsAsIdentifier(true); setNullsFirst(null); setNullsLast(null); setPrecedence(Precedence.COMPARISON, Ops.EQ, Ops.EQ_IGNORE_CASE, Ops.NE); setPrecedence(Precedence.CASE, Ops.BETWEEN); add(Ops.MOD, "{0} % {1}", Precedence.ARITH_HIGH); add(Ops.CONCAT, "concat({0}, {1})", -1); add(Ops.StringOps.LPAD, "lpad({0},{1},' ')"); add(Ops.StringOps.RPAD, "rpad({0},{1},' ')"); add(Ops.LIKE, "{0} like {1}"); add(Ops.ENDS_WITH, "{0} like {%1}"); add(Ops.ENDS_WITH_IC, "{0l} like {%%1}"); add(Ops.STARTS_WITH, "{0} like {1%}"); add(Ops.STARTS_WITH_IC, "{0l} like {1%%}"); add(Ops.STRING_CONTAINS, "{0} like {%1%}"); add(Ops.STRING_CONTAINS_IC, "{0l} like {%%1%%}"); add(Ops.MathOps.LOG, "log({1},{0})"); add(Ops.MathOps.COSH, "(exp({0}) + exp({0} * -1)) / 2"); add(Ops.MathOps.COTH, "(exp({0} * 2) + 1) / (exp({0} * 2) - 1)"); add(Ops.MathOps.SINH, "(exp({0}) - exp({0} * -1)) / 2");
sqlTemplate = H2Templates.builder(); } else if (SQLTemplatesConstants.DB_PRODUCT_NAME_MYSQL.equals(dbType)) { sqlTemplate = MySQLTemplates.builder(); } else if (SQLTemplatesConstants.DB_PRODUCT_NAME_ORACLE.equals(dbType)) { sqlTemplate = OracleTemplates.builder();
return MySQLTemplates.builder();
@Override protected SQLTemplates build(char escape, boolean quote) { return new MySQLTemplates(escape, quote); } };
private static SQLTemplates.Builder findDialectBuilder(final DatabaseConfig databaseConfig) { if (databaseConfig.isMySql()) { return MySQLTemplates.builder(); } if (databaseConfig.isPostgres()) { return PostgresTemplates.builder(); } if (databaseConfig.isOracle()) { return OracleTemplates.builder(); } if (databaseConfig.isSqlServer()) { return SQLServerTemplates.builder(); } if (databaseConfig.isH2()) { return H2Templates.builder(); } // should be removed in 8.0; only required during migration of 6.x HSQL installation to 7.x H2 if (databaseConfig.isHSql()) { return HSQLDBTemplates.builder(); } throw new IllegalStateException("Unrecognised database dialect '" + databaseConfig.getDatabaseType() + "'."); }
public MySQLQueryFactory(Provider<Connection> connection) { this(new Configuration(new MySQLTemplates()), connection); }
public MySQLQuery(Connection conn) { this(conn, new Configuration(new MySQLTemplates()), new DefaultQueryMetadata()); }
@Test public void Path_Column2() { PathBuilder<Entity> entity = new PathBuilder<Entity>(Entity.class,"entity"); Configuration conf = new Configuration(new MySQLTemplates()); NativeSQLSerializer serializer = new NativeSQLSerializer(conf, true); serializer.handle(entity.get("firstName")); assertEquals("entity.first_name", serializer.toString()); }
@Test public void Path_Column() { PathBuilder<Entity> entity = new PathBuilder<Entity>(Entity.class,"entity"); Configuration conf = new Configuration(new MySQLTemplates()); NativeSQLSerializer serializer = new NativeSQLSerializer(conf, true); serializer.handle(entity.get("name")); assertEquals("entity.name", serializer.toString()); }
public static SQLTemplates getSQLTemplates() { switch (target.get()) { case CUBRID:return new CUBRIDTemplates(); case DERBY: return new DerbyTemplates(); case H2: return new H2Templates(); case HSQLDB:return new HSQLDBTemplates(); case SQLSERVER: return new SQLServerTemplates(); case MYSQL: return new MySQLTemplates(); case ORACLE:return new OracleTemplates(); case POSTGRES: return new PostgresTemplates(); case SQLITE:return new SQLiteTemplates(); case TERADATA: return new TeradataTemplates(); } throw new IllegalStateException("Unknown mode " + mode); }
@Test public void In() { Configuration conf = new Configuration(new MySQLTemplates()); NativeSQLSerializer serializer = new NativeSQLSerializer(conf, true); DefaultQueryMetadata md = new DefaultQueryMetadata(); SAnimal cat = SAnimal.animal_; md.addJoin(JoinType.DEFAULT, cat); md.addWhere(cat.name.in("X", "Y")); md.addProjection(cat.id); serializer.serialize(md, false); assertEquals("select animal_.id\n" + "from animal_ animal_\n" + "where animal_.name in (?1, ?2)", serializer.toString()); }