📄 lobtest.java
字号:
stmt.execute("CREATE TABLE #blobsetnull4 (data IMAGE NULL)"); stmt.close(); PreparedStatement pstmt = con.prepareStatement("INSERT INTO #blobsetnull4 (data) VALUES (?)"); // Test PreparedStatement.setObject(int,Object) pstmt.setObject(1, null); assertEquals(pstmt.executeUpdate(), 1); pstmt.close(); Statement stmt2 = con.createStatement(); ResultSet rs = stmt2.executeQuery("SELECT data FROM #blobsetnull4"); assertTrue(rs.next()); // Test ResultSet.getBinaryStream() assertNull(rs.getBinaryStream(1)); assertTrue(rs.wasNull()); // Test ResultSet.getBlob() assertNull(rs.getBlob(1)); assertTrue(rs.wasNull()); // Test ResultSet.getBytes() assertNull(rs.getBytes(1)); assertTrue(rs.wasNull()); // Test ResultSet.getObject() assertNull(rs.getObject(1)); assertTrue(rs.wasNull()); assertFalse(rs.next()); stmt2.close(); rs.close(); } public void testBlobSetNull5() throws Exception { Statement stmt = con.createStatement(); stmt.execute("CREATE TABLE #blobsetnull5 (data IMAGE NULL)"); stmt.close(); PreparedStatement pstmt = con.prepareStatement("INSERT INTO #blobsetnull5 (data) VALUES (?)"); // Test PreparedStatement.setObject(int,Object,int) pstmt.setObject(1, null, Types.BLOB); assertEquals(pstmt.executeUpdate(), 1); pstmt.close(); Statement stmt2 = con.createStatement(); ResultSet rs = stmt2.executeQuery("SELECT data FROM #blobsetnull5"); assertTrue(rs.next()); // Test ResultSet.getBinaryStream() assertNull(rs.getBinaryStream(1)); assertTrue(rs.wasNull()); // Test ResultSet.getBlob() assertNull(rs.getBlob(1)); assertTrue(rs.wasNull()); // Test ResultSet.getBytes() assertNull(rs.getBytes(1)); assertTrue(rs.wasNull()); // Test ResultSet.getObject() assertNull(rs.getObject(1)); assertTrue(rs.wasNull()); assertFalse(rs.next()); stmt2.close(); rs.close(); } public void testBlobSetNull6() throws Exception { Statement stmt = con.createStatement(); stmt.execute("CREATE TABLE #blobsetnull6 (data IMAGE NULL)"); stmt.close(); PreparedStatement pstmt = con.prepareStatement("INSERT INTO #blobsetnull6 (data) VALUES (?)"); // Test PreparedStatement.setNull() pstmt.setNull(1, Types.BLOB); assertEquals(pstmt.executeUpdate(), 1); pstmt.close(); Statement stmt2 = con.createStatement(); ResultSet rs = stmt2.executeQuery("SELECT data FROM #blobsetnull6"); assertTrue(rs.next()); // Test ResultSet.getBinaryStream() assertNull(rs.getBinaryStream(1)); assertTrue(rs.wasNull()); // Test ResultSet.getBlob() assertNull(rs.getBlob(1)); assertTrue(rs.wasNull()); // Test ResultSet.getBytes() assertNull(rs.getBytes(1)); assertTrue(rs.wasNull()); // Test ResultSet.getObject() assertNull(rs.getObject(1)); assertTrue(rs.wasNull()); assertFalse(rs.next()); stmt2.close(); rs.close(); } public void testBlobSetNull7() throws Exception { Statement stmt = con.createStatement(); stmt.execute("CREATE TABLE #blobsetnull7 (id NUMERIC IDENTITY, data IMAGE NULL, " + "CONSTRAINT pk_blobsetnull7 PRIMARY KEY CLUSTERED (id))"); stmt.close(); stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs = stmt.executeQuery("SELECT id, data FROM #blobsetnull7"); rs.moveToInsertRow(); // Test ResultSet.updateBinaryStream() rs.updateBinaryStream(2, null, 0); rs.insertRow(); stmt.close(); rs.close(); Statement stmt2 = con.createStatement(); ResultSet rs2 = stmt2.executeQuery("SELECT data FROM #blobsetnull7"); assertTrue(rs2.next()); // Test ResultSet.getBinaryStream() assertNull(rs2.getBinaryStream(1)); assertTrue(rs2.wasNull()); // Test ResultSet.getBlob() assertNull(rs2.getBlob(1)); assertTrue(rs2.wasNull()); // Test ResultSet.getBytes() assertNull(rs2.getBytes(1)); assertTrue(rs2.wasNull()); // Test ResultSet.getObject() assertNull(rs2.getObject(1)); assertTrue(rs2.wasNull()); assertFalse(rs2.next()); stmt2.close(); rs2.close(); } public void testBlobSetNull8() throws Exception { Statement stmt = con.createStatement(); stmt.execute("CREATE TABLE #blobsetnull8 (id NUMERIC IDENTITY, data IMAGE NULL, " + "CONSTRAINT pk_blobsetnull8 PRIMARY KEY CLUSTERED (id))"); stmt.close(); stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs = stmt.executeQuery("SELECT id, data FROM #blobsetnull8"); rs.moveToInsertRow(); // Test ResultSet.updateBlob() rs.updateBlob(2, null); rs.insertRow(); stmt.close(); rs.close(); Statement stmt2 = con.createStatement(); ResultSet rs2 = stmt2.executeQuery("SELECT data FROM #blobsetnull8"); assertTrue(rs2.next()); // Test ResultSet.getBinaryStream() assertNull(rs2.getBinaryStream(1)); assertTrue(rs2.wasNull()); // Test ResultSet.getBlob() assertNull(rs2.getBlob(1)); assertTrue(rs2.wasNull()); // Test ResultSet.getBytes() assertNull(rs2.getBytes(1)); assertTrue(rs2.wasNull()); // Test ResultSet.getObject() assertNull(rs2.getObject(1)); assertTrue(rs2.wasNull()); assertFalse(rs2.next()); stmt2.close(); rs2.close(); } public void testBlobSetNull9() throws Exception { Statement stmt = con.createStatement(); stmt.execute("CREATE TABLE #blobsetnull9 (id NUMERIC IDENTITY, data IMAGE NULL, " + "CONSTRAINT pk_blobsetnull9 PRIMARY KEY CLUSTERED (id))"); stmt.close(); stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs = stmt.executeQuery("SELECT id, data FROM #blobsetnull9"); rs.moveToInsertRow(); // Test ResultSet.updateBytes() rs.updateBytes(2, null); rs.insertRow(); stmt.close(); rs.close(); Statement stmt2 = con.createStatement(); ResultSet rs2 = stmt2.executeQuery("SELECT data FROM #blobsetnull9"); assertTrue(rs2.next()); // Test ResultSet.getBinaryStream() assertNull(rs2.getBinaryStream(1)); assertTrue(rs2.wasNull()); // Test ResultSet.getBlob() assertNull(rs2.getBlob(1)); assertTrue(rs2.wasNull()); // Test ResultSet.getBytes() assertNull(rs2.getBytes(1)); assertTrue(rs2.wasNull()); // Test ResultSet.getObject() assertNull(rs2.getObject(1)); assertTrue(rs2.wasNull()); assertFalse(rs2.next()); stmt2.close(); rs2.close(); } public void testBlobSetNull10() throws Exception { Statement stmt = con.createStatement(); stmt.execute("CREATE TABLE #blobsetnull10 (id NUMERIC IDENTITY, data IMAGE NULL, " + "CONSTRAINT pk_blobsetnull10 PRIMARY KEY CLUSTERED (id))"); stmt.close(); stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs = stmt.executeQuery("SELECT id, data FROM #blobsetnull10"); rs.moveToInsertRow(); // Test ResultSet.updateObject() rs.updateObject(2, null); rs.insertRow(); stmt.close(); rs.close(); Statement stmt2 = con.createStatement(); ResultSet rs2 = stmt2.executeQuery("SELECT data FROM #blobsetnull10"); assertTrue(rs2.next()); // Test ResultSet.getBinaryStream() assertNull(rs2.getBinaryStream(1)); assertTrue(rs2.wasNull()); // Test ResultSet.getBlob() assertNull(rs2.getBlob(1)); assertTrue(rs2.wasNull()); // Test ResultSet.getBytes() assertNull(rs2.getBytes(1)); assertTrue(rs2.wasNull()); // Test ResultSet.getObject() assertNull(rs2.getObject(1)); assertTrue(rs2.wasNull()); assertFalse(rs2.next()); stmt2.close(); rs2.close(); } public void testBlobSetNull11() throws Exception { Statement stmt = con.createStatement(); stmt.execute("CREATE TABLE #blobsetnull11 (id NUMERIC IDENTITY, data IMAGE NULL, " + "CONSTRAINT pk_blobsetnull11 PRIMARY KEY CLUSTERED (id))"); stmt.close(); stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs = stmt.executeQuery("SELECT id, data FROM #blobsetnull11"); rs.moveToInsertRow(); // Test ResultSet.updateNull() rs.updateNull(2); rs.insertRow(); stmt.close(); rs.close(); Statement stmt2 = con.createStatement(); ResultSet rs2 = stmt2.executeQuery("SELECT data FROM #blobsetnull11"); assertTrue(rs2.next()); // Test ResultSet.getBinaryStream() assertNull(rs2.getBinaryStream(1)); assertTrue(rs2.wasNull()); // Test ResultSet.getBlob() assertNull(rs2.getBlob(1)); assertTrue(rs2.wasNull()); // Test ResultSet.getBytes() assertNull(rs2.getBytes(1)); assertTrue(rs2.wasNull()); // Test ResultSet.getObject() assertNull(rs2.getObject(1)); assertTrue(rs2.wasNull()); assertFalse(rs2.next()); stmt2.close(); rs2.close(); } /** * Test for bug [989399] blob.getBytes() from 0. */ public void testBlobGetBytes1() throws Exception { byte[] data = getBlobTestData(); Statement stmt = con.createStatement(); stmt.execute("CREATE TABLE #blobgetbytes1 (data IMAGE)"); stmt.close(); PreparedStatement pstmt = con.prepareStatement("INSERT INTO #blobgetbytes1 (data) VALUES (?)"); // Test PreparedStatement.setBytes() pstmt.setBytes(1, data); assertEquals(pstmt.executeUpdate(), 1); pstmt.close(); Statement stmt2 = con.createStatement(); ResultSet rs = stmt2.executeQuery("SELECT data FROM #blobgetbytes1"); assertTrue(rs.next()); // Test ResultSet.getBlob() Blob blob = rs.getBlob(1); assertNotNull(blob); // Test Blob.getBytes() assertTrue(Arrays.equals(data, blob.getBytes(1L, (int) blob.length()))); assertFalse(rs.next()); stmt2.close(); rs.close(); } public void testBlobGetBytes2() throws Exception { byte[] data = getBlobTestData(); Statement stmt = con.createStatement(); stmt.execute("CREATE TABLE #blobgetbytes2 (data IMAGE)"); stmt.close(); PreparedStatement pstmt = con.prepareStatement("INSERT INTO #blobgetbytes2 (data) VALUES (?)"); // Test PreparedStatement.setBytes() pstmt.setBytes(1, data); assertEquals(pstmt.executeUpdate(), 1); pstmt.close(); Statement stmt2 = con.createStatement(); ResultSet rs = stmt2.executeQuery("SELECT data FROM #blobgetbytes2"); assertTrue(rs.next()); // Test ResultSet.getBlob() Blob blob = rs.getBlob(1); assertNotNull(blob); byte[] tmpData = new byte[data.length / 2]; System.arraycopy(data, 0, tmpData, 0, tmpData.length); // Test Blob.getBytes() assertTrue(Arrays.equals(tmpData, blob.getBytes(1L, tmpData.length))); assertFalse(rs.next()); stmt2.close(); rs.close(); } public void testBlobGetBytes3() throws Exception { byte[] data = getBlobTestData(); Statement stmt = con.createStatement(); stmt.execute("CREATE TABLE #blobgetbytes3 (data IMAGE)"); stmt.close(); PreparedStatement pstmt = con.prepareStatement("INSERT INTO #blobgetbytes3 (data) VALUES (?)"); // Test PreparedStatement.setBytes() pstmt.setBytes(1, data); assertEquals(pstmt.executeUpdate(), 1); pstmt.close(); Statement stmt2 = con.createStatement(); ResultSet rs = stmt2.executeQuery("SELECT data FROM #blobgetbytes3"); assertTrue(rs.next());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -