本文整理汇总了Java中java.sql.Blob.length方法的典型用法代码示例。如果您正苦于以下问题:Java Blob.length方法的具体用法?Java Blob.length怎么用?Java Blob.length使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类java.sql.Blob
的用法示例。
在下文中一共展示了Blob.length方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getObjectFromBlob
import java.sql.Blob; //导入方法依赖的package包/类
/**
* <p>
* This method should be overridden by any delegate subclasses that need
* special handling for BLOBs. The default implementation uses standard
* JDBC <code>java.sql.Blob</code> operations.
* </p>
*
* @param rs
* the result set, already queued to the correct row
* @param colName
* the column name for the BLOB
* @return the deserialized Object from the ResultSet BLOB
* @throws ClassNotFoundException
* if a class found during deserialization cannot be found
* @throws IOException
* if deserialization causes an error
*/
protected Object getObjectFromBlob(ResultSet rs, String colName)
throws ClassNotFoundException, IOException, SQLException {
Object obj = null;
Blob blobLocator = rs.getBlob(colName);
if (blobLocator != null && blobLocator.length() != 0) {
InputStream binaryInput = blobLocator.getBinaryStream();
if (null != binaryInput) {
if (binaryInput instanceof ByteArrayInputStream
&& ((ByteArrayInputStream) binaryInput).available() == 0 ) {
//do nothing
} else {
ObjectInputStream in = new ObjectInputStream(binaryInput);
try {
obj = in.readObject();
} finally {
in.close();
}
}
}
}
return obj;
}
示例2: getObjectFromBlob
import java.sql.Blob; //导入方法依赖的package包/类
/**
* <p>
* This method should be overridden by any delegate subclasses that need
* special handling for BLOBs. The default implementation uses standard
* JDBC <code>java.sql.Blob</code> operations.
* </p>
*
* @param rs
* the result set, already queued to the correct row
* @param colName
* the column name for the BLOB
* @return the deserialized Object from the ResultSet BLOB
* @throws ClassNotFoundException
* if a class found during deserialization cannot be found
* @throws IOException
* if deserialization causes an error
*/
protected Object getObjectFromBlob(ResultSet rs, String colName)
throws ClassNotFoundException, IOException, SQLException {
Object obj = null;
Blob blobLocator = rs.getBlob(colName);
InputStream binaryInput = null;
try {
if (null != blobLocator && blobLocator.length() > 0) {
binaryInput = blobLocator.getBinaryStream();
}
} catch (Exception ignore) {
}
if (null != binaryInput) {
ObjectInputStream in = new ObjectInputStream(binaryInput);
try {
obj = in.readObject();
} finally {
in.close();
}
}
return obj;
}
示例3: getJobDetailFromBlob
import java.sql.Blob; //导入方法依赖的package包/类
protected Object getJobDetailFromBlob(ResultSet rs, String colName)
throws ClassNotFoundException, IOException, SQLException {
if (canUseProperties()) {
Blob blobLocator = rs.getBlob(colName);
InputStream binaryInput = null;
try {
if (null != blobLocator && blobLocator.length() > 0) {
binaryInput = blobLocator.getBinaryStream();
}
} catch (Exception ignore) {
}
return binaryInput;
}
return getObjectFromBlob(rs, colName);
}
示例4: blobToString
import java.sql.Blob; //导入方法依赖的package包/类
public static String blobToString(Blob blob) {
try {
Long size = blob.length();
StringBuilder stringValue = new StringBuilder();
stringValue.append("<BLOB ");
if (size < 1000) {
stringValue.append(String.format("%1$d bytes", size));
} else if (size < 1000000) {
stringValue.append(String.format("%1$d kB", size / 1000));
} else {
stringValue.append(String.format("%1$d MB", size / 1000000));
}
stringValue.append(">");
return stringValue.toString();
} catch (SQLException ex) {
return "<BLOB of unkown size>";
}
}
示例5: setBlobForBinaryParameter
import java.sql.Blob; //导入方法依赖的package包/类
/**
* Converts a blob to binary data for non-blob binary parameters.
*/
private void setBlobForBinaryParameter(int parameterIndex,
Blob x) throws SQLException {
if (x instanceof JDBCBlob) {
setParameter(parameterIndex, ((JDBCBlob) x).data());
return;
} else if (x == null) {
setParameter(parameterIndex, null);
return;
}
final long length = x.length();
if (length > Integer.MAX_VALUE) {
String msg = "Maximum Blob input octet length exceeded: " + length; // NOI18N
throw JDBCUtil.sqlException(ErrorCode.JDBC_INPUTSTREAM_ERROR, msg);
}
try {
java.io.InputStream in = x.getBinaryStream();
HsqlByteArrayOutputStream out = new HsqlByteArrayOutputStream(in,
(int) length);
setParameter(parameterIndex, out.toByteArray());
out.close();
} catch (Throwable e) {
throw JDBCUtil.sqlException(ErrorCode.JDBC_INPUTSTREAM_ERROR,
e.toString(), e);
}
}
示例6: position
import java.sql.Blob; //导入方法依赖的package包/类
/**
* Retrieves the byte position in the <code>BLOB</code> value
* designated by this <code>Blob</code> object at which
* <code>pattern</code> begins. The search begins at position
* <code>start</code>.
*
* @param pattern the <code>Blob</code> object designating
* the <code>BLOB</code> value for which to search
* @param start the position in the <code>BLOB</code> value
* at which to begin searching; the first position is 1
* @return the position at which the pattern begins, else -1
* @exception SQLException if there is an error accessing the
* <code>BLOB</code> value or if start is less than 1
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2, HSQLDB 1.7.2
*/
public long position(final Blob pattern, long start) throws SQLException {
final byte[] data = getData();
final int dlen = data.length;
if (start < MIN_POS) {
throw JDBCUtil.outOfRangeArgument("start: " + start);
} else if (start > dlen || pattern == null) {
return -1L;
}
// by now, we know start <= Integer.MAX_VALUE;
final int startIndex = (int) start - 1;
final long plen = pattern.length();
if (plen == 0 || startIndex > ((long) dlen) - plen) {
return -1L;
}
// by now, we know plen <= Integer.MAX_VALUE
final int iplen = (int) plen;
byte[] bytePattern;
if (pattern instanceof JDBCBlob) {
bytePattern = ((JDBCBlob) pattern).data();
} else {
bytePattern = pattern.getBytes(1L, iplen);
}
final int result = KMPSearchAlgorithm.search(data, bytePattern,
KMPSearchAlgorithm.computeTable(bytePattern), startIndex);
return (result == -1) ? -1
: result + 1;
}
示例7: setBlob
import java.sql.Blob; //导入方法依赖的package包/类
/**
* @see java.sql.PreparedStatement#setBlob(int, java.sql.Blob)
*/
@Override
public void setBlob(int parameterIndex, Blob x) throws SQLException {
synchronized (checkClosed().getConnectionMutex()) {
if (x == null) {
setNull(parameterIndex, java.sql.Types.BINARY);
} else {
BindValue binding = getBinding(parameterIndex, true);
resetToType(binding, MysqlDefs.FIELD_TYPE_BLOB);
binding.value = x;
binding.isLongData = true;
if (this.connection.getUseStreamLengthsInPrepStmts()) {
binding.bindLength = x.length();
} else {
binding.bindLength = -1;
}
}
}
}
示例8: PreparedStmtSetValue
import java.sql.Blob; //导入方法依赖的package包/类
public static Object PreparedStmtSetValue(int columnType, ResultSet rs, int index) throws SQLException, IOException{
StringBuffer sb = new StringBuffer();
switch(columnType){
case 2005: //CLOB
Clob clob = rs.getClob(index);
if (clob == null){
return null;
}
Reader reader = clob.getCharacterStream();
char[] buffer = new char[(int)clob.length()];
while(reader.read(buffer) != -1){
sb.append(buffer);
}
return sb.toString();
case 2004: //BLOB
Blob blob = rs.getBlob(index);
if (blob == null){
return null;
}
InputStream in = blob.getBinaryStream();
byte[] Bytebuffer = new byte[(int)blob.length()];
in.read(Bytebuffer);
return Bytebuffer;
case -2:
return rs.getBytes(index);
default:
return rs.getObject(index);
}
}
示例9: setBlobForBinaryParameter
import java.sql.Blob; //导入方法依赖的package包/类
/**
* Converts a blob to binary data for non-blob binary parameters.
*/
private void setBlobForBinaryParameter(int parameterIndex,
Blob x) throws SQLException {
if (x instanceof JDBCBlob) {
setParameter(parameterIndex, ((JDBCBlob) x).data());
return;
} else if (x == null) {
setParameter(parameterIndex, null);
return;
}
checkSetParameterIndex(parameterIndex, true);
final long length = x.length();
if (length > Integer.MAX_VALUE) {
String msg = "Maximum Blob input octet length exceeded: " + length; // NOI18N
throw Util.sqlException(ErrorCode.JDBC_INPUTSTREAM_ERROR, msg);
}
try {
java.io.InputStream in = x.getBinaryStream();
HsqlByteArrayOutputStream out = new HsqlByteArrayOutputStream(in,
(int) length);
setParameter(parameterIndex, out.toByteArray());
} catch (IOException e) {
throw Util.sqlException(ErrorCode.JDBC_INPUTSTREAM_ERROR,
e.toString());
}
}
示例10: setBlob
import java.sql.Blob; //导入方法依赖的package包/类
/**
* @see java.sql.PreparedStatement#setBlob(int, java.sql.Blob)
*/
@Override
public void setBlob(int parameterIndex, Blob x) throws SQLException {
synchronized (checkClosed().getConnectionMutex()) {
if (x == null) {
setNull(parameterIndex, java.sql.Types.BINARY);
} else {
BindValue binding = getBinding(parameterIndex, true);
setType(binding, MysqlDefs.FIELD_TYPE_BLOB);
binding.value = x;
binding.isNull = false;
binding.isLongData = true;
if (this.connection.getUseStreamLengthsInPrepStmts()) {
binding.bindLength = x.length();
} else {
binding.bindLength = -1;
}
}
}
}
示例11: getObjectFromBlob
import java.sql.Blob; //导入方法依赖的package包/类
/**
* {@inheritDoc}
* <p>
* Caché requires {@code java.sql.Blob} instances to be explicitly freed.
*/
@Override
protected Object getObjectFromBlob(ResultSet rs, String colName) throws ClassNotFoundException, IOException, SQLException {
Blob blob = rs.getBlob(colName);
if (blob == null) {
return null;
} else {
try {
if (blob.length() == 0) {
return null;
} else {
InputStream binaryInput = blob.getBinaryStream();
if (binaryInput == null) {
return null;
} else if (binaryInput instanceof ByteArrayInputStream && ((ByteArrayInputStream) binaryInput).available() == 0 ) {
return null;
} else {
ObjectInputStream in = new ObjectInputStream(binaryInput);
try {
return in.readObject();
} finally {
in.close();
}
}
}
} finally {
blob.free();
}
}
}
示例12: get
import java.sql.Blob; //导入方法依赖的package包/类
protected Object get(ResultSet rs, String name) throws SQLException {
Blob blob = rs.getBlob( name );
if ( rs.wasNull() ) return null;
int length = (int) blob.length();
byte[] primaryResult = blob.getBytes( 1, length );
return wrap( primaryResult );
}
示例13: setBlobForBinaryParameter
import java.sql.Blob; //导入方法依赖的package包/类
/**
* Converts a blob to binary data for non-blob binary parameters.
*/
private void setBlobForBinaryParameter(int parameterIndex,
Blob x) throws SQLException {
if (x instanceof JDBCBlob) {
setParameter(parameterIndex, ((JDBCBlob) x).data());
return;
} else if (x == null) {
setParameter(parameterIndex, null);
return;
}
final long length = x.length();
if (length > Integer.MAX_VALUE) {
String msg = "Maximum Blob input octet length exceeded: " + length; // NOI18N
throw JDBCUtil.sqlException(ErrorCode.JDBC_INPUTSTREAM_ERROR, msg);
}
try {
java.io.InputStream in = x.getBinaryStream();
HsqlByteArrayOutputStream out = new HsqlByteArrayOutputStream(in,
(int) length);
setParameter(parameterIndex, out.toByteArray());
} catch (Throwable e) {
throw JDBCUtil.sqlException(ErrorCode.JDBC_INPUTSTREAM_ERROR,
e.toString(), e);
}
}
示例14: position
import java.sql.Blob; //导入方法依赖的package包/类
/**
* Retrieves the byte position in the <code>BLOB</code> value
* designated by this <code>Blob</code> object at which
* <code>pattern</code> begins. The search begins at position
* <code>start</code>.
*
* @param pattern the <code>Blob</code> object designating
* the <code>BLOB</code> value for which to search
* @param start the position in the <code>BLOB</code> value
* at which to begin searching; the first position is 1
* @return the position at which the pattern begins, else -1
* @exception SQLException if there is an error accessing the
* <code>BLOB</code> value
*
* @since JDK 1.2, HSQLDB 1.7.2
*/
public long position(final Blob pattern, long start) throws SQLException {
final byte[] ldata = data;
final int dlen = ldata.length;
if (start > dlen || pattern == null) {
return -1;
} else if (start < 1) {
start = 0;
} else {
start--;
}
final long plen = pattern.length();
if (plen == 0 || start > ((long) dlen) - plen) {
return -1;
}
// by now, we know plen <= Integer.MAX_VALUE
final int iplen = (int) plen;
byte[] bap;
if (pattern instanceof jdbcBlob) {
bap = ((jdbcBlob) pattern).data;
} else {
bap = pattern.getBytes(1, iplen);
}
final int stop = dlen - iplen;
final byte b0 = bap[0];
outer_loop:
for (int i = (int) start; i <= stop; i++) {
if (ldata[i] != b0) {
continue;
}
int len = iplen;
int doffset = i;
int poffset = 0;
while (len-- > 0) {
if (ldata[doffset++] != bap[poffset++]) {
continue outer_loop;
}
}
return i + 1;
}
return -1;
}
示例15: position
import java.sql.Blob; //导入方法依赖的package包/类
/**
* Retrieves the byte position in the <code>BLOB</code> value
* designated by this <code>Blob</code> object at which
* <code>pattern</code> begins. The search begins at position
* <code>start</code>.
*
* @param pattern the <code>Blob</code> object designating
* the <code>BLOB</code> value for which to search
* @param start the position in the <code>BLOB</code> value
* at which to begin searching; the first position is 1
* @return the position at which the pattern begins, else -1
* @exception SQLException if there is an error accessing the
* <code>BLOB</code> value or if start is less than 1
* @exception SQLFeatureNotSupportedException if the JDBC driver does not support
* this method
* @since JDK 1.2, HSQLDB 1.7.2
*/
public long position(final Blob pattern, long start) throws SQLException {
final byte[] ldata = data;
checkValid(ldata);
final int dlen = ldata.length;
if (start < MIN_POS) {
throw Util.outOfRangeArgument("start: " + start);
} else if (start > dlen || pattern == null) {
return -1L;
} else {
start--;
}
final long plen = pattern.length();
if (plen == 0 || start > ((long) dlen) - plen) {
return -1L;
}
// by now, we know plen <= Integer.MAX_VALUE
final int iplen = (int) plen;
byte[] bap;
if (pattern instanceof JDBCBlob) {
bap = ((JDBCBlob) pattern).data();
} else {
bap = pattern.getBytes(1L, iplen);
}
final int stop = dlen - iplen;
final byte b0 = bap[0];
outer_loop:
for (int i = (int) start; i <= stop; i++) {
if (ldata[i] != b0) {
continue;
}
int len = iplen;
int doffset = i;
int poffset = 0;
while (len-- > 0) {
if (ldata[doffset++] != bap[poffset++]) {
continue outer_loop;
}
}
return i + 1;
}
return -1L;
}