📄 largelobtest.java
字号:
//jTDS JDBC Driver for Microsoft SQL Server and Sybase//Copyright (C) 2004 The jTDS Project////This library is free software; you can redistribute it and/or//modify it under the terms of the GNU Lesser General Public //License as published by the Free Software Foundation; either//version 2.1 of the License, or (at your option) any later version.////This library is distributed in the hope that it will be useful,//but WITHOUT ANY WARRANTY; without even the implied warranty of//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU//Lesser General Public License for more details.////You should have received a copy of the GNU Lesser General Public//License along with this library; if not, write to the Free Software//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA//package net.sourceforge.jtds.test;import java.io.*;import java.sql.*;import junit.framework.Test;import junit.framework.TestSuite;/** * @version 1.0 */public class LargeLOBTest extends TestBase { private static final int LOB_LENGTH = 100000000; /** * Only run the test suite if the "jTDS.runLargeLOBTest" system property is defined, as the test takes A LOT of time * to execute. */ public static Test suite() { if (System.getProperty("jTDS.runLargeLOBTest") == null) { return new TestSuite(); } return new TestSuite(LargeLOBTest.class); } public LargeLOBTest(String name) { super(name); } /************************************************************************* ************************************************************************* ** BLOB TESTS ** ************************************************************************* *************************************************************************/ /** * Test for bug [945507] closing statement after selecting a large IMAGE - Exception */ public void testLargeBlob1() throws Exception { File data = File.createTempFile("blob", ".tmp"); data.deleteOnExit(); FileOutputStream fos = new FileOutputStream(data); BufferedOutputStream bos = new BufferedOutputStream(fos); byte buf[] = new byte[256]; for (int i = 0; i < 256; i++) { buf[i] = (byte) i; } for (int i = 0; i < LOB_LENGTH; i += buf.length) { bos.write(buf); } bos.write(buf, 0, LOB_LENGTH % buf.length); bos.close(); Statement stmt = con.createStatement(); stmt.execute("CREATE TABLE #largeblob1 (data IMAGE)"); stmt.close(); PreparedStatement pstmt = con.prepareStatement("INSERT INTO #largeblob1 (data) VALUES (?)"); FileInputStream fis = new FileInputStream(data); BufferedInputStream bis = new BufferedInputStream(fis); // Test PreparedStatement.setBinaryStream() pstmt.setBinaryStream(1, bis, LOB_LENGTH); assertTrue(pstmt.executeUpdate() == 1); pstmt.close(); bis.close(); Statement stmt2 = con.createStatement(); ResultSet rs = stmt2.executeQuery("SELECT data FROM #largeblob1"); assertTrue(rs.next()); fis = new FileInputStream(data); bis = new BufferedInputStream(fis); // Test ResultSet.getBinaryStream() compareInputStreams(bis, rs.getBinaryStream(1)); bis.close(); assertFalse(rs.next()); stmt2.close(); rs.close(); assertTrue(data.delete()); } public static void main(String[] args) { junit.textui.TestRunner.run(LOBTest.class); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -