public QueryPreparer<T> to(NamedSqlQuery query) { return to(query, null); }
public QueryPreparer<T> to(NamedSqlQuery query) { return to(query, null); }
private static <T, K> QueryPreparer<K> buildDelete(ClassMeta<K> keyTarget, CrudMeta crudMeta, JdbcMapperFactory jdbcMapperFactory) throws SQLException { StringBuilder sb = new StringBuilder("DELETE FROM "); appendTableName(sb, crudMeta); addWhereOnPrimaryKeys(crudMeta, sb); return jdbcMapperFactory.<K>from(keyTarget).to(NamedSqlQuery.parse(sb)); }
private static <T, K> QueryPreparer<K> buildDelete(ClassMeta<K> keyTarget, CrudMeta crudMeta, JdbcMapperFactory jdbcMapperFactory) throws SQLException { StringBuilder sb = new StringBuilder("DELETE FROM "); appendTableName(sb, crudMeta); addWhereOnPrimaryKeys(crudMeta, sb); return jdbcMapperFactory.<K>from(keyTarget).to(NamedSqlQuery.parse(sb)); }
private static <T, K> QueryPreparer<K> buildSelect(ClassMeta<K> keyTarget, CrudMeta crudMeta, JdbcMapperFactory jdbcMapperFactory) throws SQLException { StringBuilder sb = new StringBuilder("SELECT "); boolean first = true; for(ColumnMeta cm : crudMeta.getColumnMetas()) { if (!first) { sb.append(", "); } crudMeta.appendProtectedField(sb, cm.getColumn()); first = false; } sb.append(" FROM "); appendTableName(sb, crudMeta); addWhereOnPrimaryKeys(crudMeta, sb); return jdbcMapperFactory.<K>from(keyTarget).to(NamedSqlQuery.parse(sb)); }
private static <T, K> QueryPreparer<K> buildSelect(ClassMeta<K> keyTarget, CrudMeta crudMeta, JdbcMapperFactory jdbcMapperFactory) throws SQLException { StringBuilder sb = new StringBuilder("SELECT "); boolean first = true; for(ColumnMeta cm : crudMeta.getColumnMetas()) { if (!first) { sb.append(", "); } crudMeta.appendProtectedField(sb, cm.getColumn()); first = false; } sb.append(" FROM "); appendTableName(sb, crudMeta); addWhereOnPrimaryKeys(crudMeta, sb); return jdbcMapperFactory.<K>from(keyTarget).to(NamedSqlQuery.parse(sb)); }
private <P> SelectQueryImpl<T, P> newSelectQuery(String whereClause, Type paramClass) { String query = sqlQuery(whereClause); QueryPreparer<P> queryPreparer = jdbcMapperFactory.<P>from(paramClass).to(NamedSqlQuery.parse(query)); return new SelectQueryImpl<T, P>(queryPreparer, jdbcMapper); }
private <P> SelectQueryImpl<T, P> newSelectQuery(String whereClause, Type paramClass) { String query = sqlQuery(whereClause); QueryPreparer<P> queryPreparer = jdbcMapperFactory.<P>from(paramClass).to(NamedSqlQuery.parse(query)); return new SelectQueryImpl<T, P>(queryPreparer, jdbcMapper); }
return jdbcMapperFactory.<T>from(target).to(NamedSqlQuery.parse(sb), generatedKeys.isEmpty() ? null : generatedKeys.toArray(new String[0]));
return jdbcMapperFactory.<T>from(target).to(NamedSqlQuery.parse(sb), generatedKeys.isEmpty() ? null : generatedKeys.toArray(new String[0]));
private static <T, K> QueryPreparer<T> buildUpdate(ClassMeta<T> target, CrudMeta crudMeta, JdbcMapperFactory jdbcMapperFactory) throws SQLException { StringBuilder sb = new StringBuilder("UPDATE "); appendTableName(sb, crudMeta); sb.append(" SET "); boolean first = true; for(ColumnMeta cm : crudMeta.getColumnMetas()) { String columnName = cm.getColumn(); if (!cm.isKey()) { if (!first) { sb.append(", "); } crudMeta.appendProtectedField(sb, columnName); sb.append(" = ?"); first = false; } } if (first) { // no field to update return null; } addWhereOnPrimaryKeys(crudMeta, sb); return jdbcMapperFactory.<T>from(target).to(NamedSqlQuery.parse(sb)); }
return jdbcMapperFactory.<T>from(target).to(NamedSqlQuery.parse(sb), generatedKeys.toArray(new String[0]));
private static <T, K> QueryPreparer<T> buildUpdate(ClassMeta<T> target, CrudMeta crudMeta, JdbcMapperFactory jdbcMapperFactory) throws SQLException { StringBuilder sb = new StringBuilder("UPDATE "); appendTableName(sb, crudMeta); sb.append(" SET "); boolean first = true; for(ColumnMeta cm : crudMeta.getColumnMetas()) { String columnName = cm.getColumn(); if (!cm.isKey()) { if (!first) { sb.append(", "); } crudMeta.appendProtectedField(sb, columnName); sb.append(" = ?"); first = false; } } if (first) { // no field to update return null; } addWhereOnPrimaryKeys(crudMeta, sb); return jdbcMapperFactory.<T>from(target).to(NamedSqlQuery.parse(sb)); }
return jdbcMapperFactory.<T>from(target).to(NamedSqlQuery.parse(sb), generatedKeys.toArray(new String[0]));
@Test public void testSelectWithInList() throws SQLException { NamedSqlQuery selectInListQuery = NamedSqlQuery.parse("select * from Table where name in (?) and id = ? "); QueryPreparer<QueryParamList> selectInListMapper = jdbcMapperFactory.from(QueryParamList.class).to(selectInListQuery); Connection conn = mock(Connection.class); PreparedStatement mps = mock(PreparedStatement.class); QueryParamList value = new QueryParamList(); value.name = Arrays.asList("name1", "name2"); value.id = 3334; when(conn.prepareStatement("select * from Table where name in (?, ?) and id = ? ")).thenReturn(mps); PreparedStatement ps = selectInListMapper.prepare(conn).bind(value); assertSame(mps, ps); verify(mps).setString(1, "name1"); verify(mps).setString(2, "name2"); verify(mps).setInt(3, 3334); }
@Test public void testSelectWithInArray() throws SQLException { NamedSqlQuery selectInListQuery = NamedSqlQuery.parse("select * from Table where name = ? and id in (?) "); QueryPreparer<QueryParamArray> selectInListMapper = jdbcMapperFactory.from(QueryParamArray.class).to(selectInListQuery); Connection conn = mock(Connection.class); PreparedStatement mps = mock(PreparedStatement.class); QueryParamArray value = new QueryParamArray(); value.name = "nannme"; value.id = new int[] { 3334, 3336 }; when(conn.prepareStatement("select * from Table where name = ? and id in (?, ?) ")).thenReturn(mps); PreparedStatement ps = selectInListMapper.prepare(conn).bind(value); assertSame(mps, ps); verify(mps).setString(1, "nannme"); verify(mps).setInt(2, 3334); verify(mps).setInt(3, 3336); }
@Test public void testQueryBinderClosePsOnException() throws SQLException { NamedSqlQuery query = NamedSqlQuery.parse("select id, name, email, creation_time, type_ordinal, type_name from TEST_DB_OBJECT where id = ? "); QueryPreparer<DbObject> queryPreparer = jdbcMapperFactory .from(DbObject.class).to(query); Connection conn = mock(Connection.class); PreparedStatement ps = mock(PreparedStatement.class); when(conn.prepareStatement(anyString())).thenReturn(ps); doThrow(new IllegalStateException()).when(ps).setLong(anyInt(), anyLong()); try { queryPreparer.prepare(conn).bind(DbObject.newInstance()); fail(); } catch(IllegalStateException e) { // expected } verify(ps).close(); }
return jdbcMapperFactory.<T>from(target).to(NamedSqlQuery.parse(sb), generatedKeys.toArray(new String[0]));
private QueryPreparer<T> getQueryPreparer(SQLStatement<?> sqlStatement, SfmBind annotation, Class<?> aClass) { QueryPreparerKey key = new QueryPreparerKey(sqlStatement.getContext().getRawSql(), aClass); QueryPreparer<T> queryPreparer = cache.get(key); if (queryPreparer == null) { NamedSqlQuery parse = NamedSqlQuery.parse(sqlStatement.getContext().getRawSql()); JdbcMapperFactory jdbcMapperFactory = JdbcMapperFactory .newInstance(); for (SqlType col : annotation.sqlTypes()) { jdbcMapperFactory.addColumnProperty(col.name(), SqlTypeColumnProperty.of(col.type())); } queryPreparer = jdbcMapperFactory.<T>from(aClass).to(parse); QueryPreparer<T> cachedQP = cache.putIfAbsent(key, queryPreparer); if (cachedQP != null) { queryPreparer = cachedQP; } } return queryPreparer; } }