/** * Check the given number of affected rows against the * specified maximum number or required number. * @param rowsAffected the number of affected rows * @throws JdbcUpdateAffectedIncorrectNumberOfRowsException * if the actually affected rows are out of bounds * @see #setMaxRowsAffected * @see #setRequiredRowsAffected */ protected void checkRowsAffected(int rowsAffected) throws JdbcUpdateAffectedIncorrectNumberOfRowsException { if (this.maxRowsAffected > 0 && rowsAffected > this.maxRowsAffected) { throw new JdbcUpdateAffectedIncorrectNumberOfRowsException(resolveSql(), this.maxRowsAffected, rowsAffected); } if (this.requiredRowsAffected > 0 && rowsAffected != this.requiredRowsAffected) { throw new JdbcUpdateAffectedIncorrectNumberOfRowsException(resolveSql(), this.requiredRowsAffected, rowsAffected); } }
public void update(String statementName, Object parameter, int requiredRowsAffected) { goCache.stopServingForTransaction(); int actualRowsAffected = delegate.update(statementName, parameter); if (actualRowsAffected != requiredRowsAffected) { throw new JdbcUpdateAffectedIncorrectNumberOfRowsException( statementName, requiredRowsAffected, actualRowsAffected); } }
/** * Check the given number of affected rows against the * specified maximum number or required number. * @param rowsAffected the number of affected rows * @throws JdbcUpdateAffectedIncorrectNumberOfRowsException * if the actually affected rows are out of bounds * @see #setMaxRowsAffected * @see #setRequiredRowsAffected */ protected void checkRowsAffected(int rowsAffected) throws JdbcUpdateAffectedIncorrectNumberOfRowsException { if (this.maxRowsAffected > 0 && rowsAffected > this.maxRowsAffected) { throw new JdbcUpdateAffectedIncorrectNumberOfRowsException(resolveSql(), this.maxRowsAffected, rowsAffected); } if (this.requiredRowsAffected > 0 && rowsAffected != this.requiredRowsAffected) { throw new JdbcUpdateAffectedIncorrectNumberOfRowsException(resolveSql(), this.requiredRowsAffected, rowsAffected); } }
@Override public void delete(final String statementName, final Object parameterObject, int requiredRowsAffected) throws DataAccessException { Integer rowAffected = this.delete(statementName, parameterObject); if (rowAffected != requiredRowsAffected) { throw new JdbcUpdateAffectedIncorrectNumberOfRowsException(statementName, requiredRowsAffected, rowAffected); } }
@Override public void update(String statementName, Object parameterObject, int requiredRowsAffected) throws DataAccessException { int rowAffected = this.update(statementName, parameterObject); if (rowAffected != requiredRowsAffected) { throw new JdbcUpdateAffectedIncorrectNumberOfRowsException(statementName, requiredRowsAffected, rowAffected); } }
public void update(String statementName, Object parameterObject, int requiredRowsAffected) throws DataAccessException { int actualRowsAffected = update(statementName, parameterObject); if (actualRowsAffected != requiredRowsAffected) { throw new JdbcUpdateAffectedIncorrectNumberOfRowsException( statementName, requiredRowsAffected, actualRowsAffected); } }
public void delete(String statementName, Object parameterObject, int requiredRowsAffected) throws DataAccessException { int actualRowsAffected = delete(statementName, parameterObject); if (actualRowsAffected != requiredRowsAffected) { throw new JdbcUpdateAffectedIncorrectNumberOfRowsException( statementName, requiredRowsAffected, actualRowsAffected); } }
/** * Check the given number of affected rows against the * specified maximum number or required number. * @param rowsAffected the number of affected rows * @throws JdbcUpdateAffectedIncorrectNumberOfRowsException * if the actually affected rows are out of bounds * @see #setMaxRowsAffected * @see #setRequiredRowsAffected */ protected void checkRowsAffected(int rowsAffected) throws JdbcUpdateAffectedIncorrectNumberOfRowsException { if (this.maxRowsAffected > 0 && rowsAffected > this.maxRowsAffected) { throw new JdbcUpdateAffectedIncorrectNumberOfRowsException(getSql(), this.maxRowsAffected, rowsAffected); } if (this.requiredRowsAffected > 0 && rowsAffected != this.requiredRowsAffected) { throw new JdbcUpdateAffectedIncorrectNumberOfRowsException(getSql(), this.requiredRowsAffected, rowsAffected); } }
}, keyHolder); if (rc != 1) { throw new JdbcUpdateAffectedIncorrectNumberOfRowsException(CREATE_TAG_INODE_WITHOUT_VALUE, 1, rc);
@Override long createTagInode(int uid, int gid, int mode) { final String CREATE_TAG_INODE_WITHOUT_VALUE = "INSERT INTO t_tags_inodes (imode, inlink, iuid, igid, isize, " + "ictime, iatime, imtime, ivalue) VALUES (?,1,?,?,0,?,?,?,NULL)"; Timestamp now = new Timestamp(System.currentTimeMillis()); KeyHolder keyHolder = new GeneratedKeyHolder(); int rc = _jdbc.update( con -> { PreparedStatement ps = con.prepareStatement( CREATE_TAG_INODE_WITHOUT_VALUE, Statement.RETURN_GENERATED_KEYS); ps.setInt(1, mode | UnixPermission.S_IFREG); ps.setInt(2, uid); ps.setInt(3, gid); ps.setTimestamp(4, now); ps.setTimestamp(5, now); ps.setTimestamp(6, now); return ps; }, keyHolder); if (rc != 1) { throw new JdbcUpdateAffectedIncorrectNumberOfRowsException(CREATE_TAG_INODE_WITHOUT_VALUE, 1, rc); } /* H2 uses weird names for the column with the auto-generated key, so we cannot use the code * in the base class. */ return (Long) keyHolder.getKey(); }
@Override long createTagInode(int uid, int gid, int mode, byte[] value) { final String CREATE_TAG_INODE_WITH_VALUE = "INSERT INTO t_tags_inodes (imode, inlink, iuid, igid, isize, " + "ictime, iatime, imtime, ivalue) VALUES (?,1,?,?,?,?,?,?,?)"; Timestamp now = new Timestamp(System.currentTimeMillis()); KeyHolder keyHolder = new GeneratedKeyHolder(); int rc = _jdbc.update( con -> { PreparedStatement ps = con.prepareStatement( CREATE_TAG_INODE_WITH_VALUE, Statement.RETURN_GENERATED_KEYS); ps.setInt(1, mode | UnixPermission.S_IFREG); ps.setInt(2, uid); ps.setInt(3, gid); ps.setLong(4, value.length); ps.setTimestamp(5, now); ps.setTimestamp(6, now); ps.setTimestamp(7, now); ps.setBinaryStream(8, new ByteArrayInputStream(value), value.length); return ps; }, keyHolder); if (rc != 1) { throw new JdbcUpdateAffectedIncorrectNumberOfRowsException(CREATE_TAG_INODE_WITH_VALUE, 1, rc); } /* H2 uses weird names for the column with the auto-generated key, so we cannot use the code * in the base class. */ return (Long) keyHolder.getKey(); }
}, keyHolder); if (rc != 1) { throw new JdbcUpdateAffectedIncorrectNumberOfRowsException(CREATE_TAG_INODE_WITH_VALUE, 1, rc);
throw new JdbcUpdateAffectedIncorrectNumberOfRowsException(moveLink, 1, n);
void remove(FsInode inode) { if (inode.isDirectory()) { removeTag(inode); } /* Updating the inode effectively blocks anybody else from changing it and thus also from * adding more links. */ _jdbc.update("UPDATE t_inodes SET inlink=0 WHERE inumber=?", inode.ino()); /* Remove all hard-links. */ List<Long> parents = _jdbc.queryForList( "SELECT iparent FROM t_dirs WHERE ichild=?", Long.class, inode.ino()); for (Long parent : parents) { decNlink(new FsInode(inode.getFs(), parent)); } int n = _jdbc.update("DELETE FROM t_dirs WHERE ichild=?", inode.ino()); if (n != parents.size()) { throw new JdbcUpdateAffectedIncorrectNumberOfRowsException("DELETE FROM t_dirs WHERE ichild=?", parents.size(), n); } removeInodeIfUnlinked(inode); }