|
3 | 3 | import org.junit.jupiter.api.Test;
|
4 | 4 | import org.junit.jupiter.api.AfterEach;
|
5 | 5 |
|
| 6 | +import java.math.BigDecimal; |
| 7 | +import java.sql.Date; |
6 | 8 | import java.sql.PreparedStatement;
|
7 | 9 | import java.sql.ResultSet;
|
8 | 10 | import java.sql.SQLException;
|
| 11 | +import java.sql.Time; |
| 12 | +import java.sql.Timestamp; |
9 | 13 |
|
10 | 14 | import static org.junit.jupiter.api.Assertions.assertEquals;
|
11 | 15 | import static org.junit.jupiter.api.Assertions.assertFalse;
|
@@ -64,4 +68,66 @@ public void testExecuteUpdate() throws Exception {
|
64 | 68 |
|
65 | 69 | assertEquals("thousand", getRow("test", 1000).get(1));
|
66 | 70 | }
|
| 71 | + |
| 72 | + @Test |
| 73 | + public void testSetParameter() throws SQLException { |
| 74 | + prep = conn.prepareStatement("INSERT INTO test_types VALUES (" + |
| 75 | + "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); |
| 76 | + assertNotNull(prep); |
| 77 | + |
| 78 | + prep.setInt(1, 1000);//INT |
| 79 | + prep.setString(2, (String)testRow[1]);//CHAR |
| 80 | + prep.setString(3, (String)testRow[2]);//VARCHAR |
| 81 | + prep.setString(4, (String)testRow[3]);//LONGVARCHAR |
| 82 | + prep.setBigDecimal(5, (BigDecimal)testRow[4]);//NUMERIC |
| 83 | + prep.setBigDecimal(6, (BigDecimal)testRow[5]);//DECIMAL |
| 84 | + prep.setBoolean(7, (Boolean)testRow[6]);//BIT |
| 85 | + prep.setByte(8, (Byte)testRow[7]);//TINYINT |
| 86 | + prep.setShort(9, (Short)testRow[8]);//SMALLINT |
| 87 | + prep.setInt(10, (Integer)testRow[9]);//INTEGER |
| 88 | + prep.setLong(11, (Long)testRow[10]);//BIGINT |
| 89 | + prep.setFloat(12, (Float)testRow[11]);//REAL |
| 90 | + prep.setDouble(13, (Double)testRow[12]);//FLOAT |
| 91 | + prep.setBytes(14, (byte[])testRow[13]);//BINARY |
| 92 | + prep.setBytes(15, (byte[])testRow[14]);//VARBINARY |
| 93 | + prep.setBytes(16, (byte[])testRow[15]);//LONGVARBINARY |
| 94 | + prep.setDate(17, (Date)testRow[16]);//DATE |
| 95 | + prep.setTime(18, (Time)testRow[17]);//TIME |
| 96 | + prep.setTimestamp(19, (Timestamp)testRow[18]);//TIMESTAMP |
| 97 | + |
| 98 | + int count = prep.executeUpdate(); |
| 99 | + assertEquals(1, count); |
| 100 | + |
| 101 | + prep.close(); |
| 102 | + |
| 103 | + prep = conn.prepareStatement("SELECT * FROM test_types WHERE f1 = ?"); |
| 104 | + prep.setInt(1, 1000); |
| 105 | + |
| 106 | + ResultSet rs = prep.executeQuery(); |
| 107 | + assertNotNull(rs); |
| 108 | + |
| 109 | + assertTrue(rs.next()); |
| 110 | + assertEquals(1000, rs.getInt(1));//INT |
| 111 | + assertEquals(testRow[1], rs.getString(2));//CHAR |
| 112 | + assertEquals(testRow[2], rs.getString(3));//VARCHAR |
| 113 | + assertEquals(testRow[3], rs.getString(4)); //LONGVARCHAR |
| 114 | + assertEquals(testRow[4], rs.getBigDecimal(5));//NUMERIC |
| 115 | + assertEquals(testRow[5], rs.getBigDecimal(6));//DECIMAL |
| 116 | + assertEquals(testRow[6], rs.getBoolean(7));//BIT |
| 117 | + assertEquals(testRow[7], rs.getByte(8));//TINYINT |
| 118 | + assertEquals(testRow[8], rs.getShort(9));//SMALLINT |
| 119 | + assertEquals(testRow[9], rs.getInt(10));//INTEGER |
| 120 | + assertEquals(testRow[10], rs.getLong(11));//BIGINT |
| 121 | + assertEquals((Float)testRow[11], rs.getFloat(12), 1e-10f);//REAL |
| 122 | + assertEquals((Double)testRow[12], rs.getDouble(13), 1e-10d);//FLOAT |
| 123 | + //Issue#45 |
| 124 | + //assertTrue(Arrays.equals((byte[])testRow[13], rs.getBytes(14)));//BINARY |
| 125 | + //assertTrue(Arrays.equals((byte[])testRow[14], rs.getBytes(15)));//VARBINARY |
| 126 | + //assertTrue(Arrays.equals((byte[])testRow[15], rs.getBytes(16)));//LONGVARBINARY |
| 127 | + assertEquals(testRow[16], rs.getDate(17));//DATE |
| 128 | + assertEquals(testRow[17], rs.getTime(18));//TIME |
| 129 | + assertEquals(testRow[18], rs.getTimestamp(19));//TIMESTAMP |
| 130 | + |
| 131 | + rs.close(); |
| 132 | + } |
67 | 133 | }
|
0 commit comments