001/* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017package org.apache.commons.dbcp2; 018 019import java.io.InputStream; 020import java.io.Reader; 021import java.math.BigDecimal; 022import java.sql.Array; 023import java.sql.Blob; 024import java.sql.Clob; 025import java.sql.Connection; 026import java.sql.Date; 027import java.sql.NClob; 028import java.sql.Ref; 029import java.sql.ResultSet; 030import java.sql.ResultSetMetaData; 031import java.sql.RowId; 032import java.sql.SQLException; 033import java.sql.SQLType; 034import java.sql.SQLWarning; 035import java.sql.SQLXML; 036import java.sql.Statement; 037import java.sql.Time; 038import java.sql.Timestamp; 039import java.util.Calendar; 040import java.util.Map; 041 042/** 043 * A base delegating implementation of {@link ResultSet}. 044 * <p> 045 * All of the methods from the {@link ResultSet} interface simply call the corresponding method on the "delegate" 046 * provided in my constructor. 047 * </p> 048 * <p> 049 * Extends AbandonedTrace to implement result set tracking and logging of code which created the ResultSet. Tracking the 050 * ResultSet ensures that the Statement which created it can close any open ResultSet's on Statement close. 051 * </p> 052 * 053 * @since 2.0 054 */ 055public final class DelegatingResultSet extends AbandonedTrace implements ResultSet { 056 057 /** 058 * Wraps the given result set in a delegate. 059 * 060 * @param connection 061 * The Connection which created the ResultSet. 062 * @param resultSet 063 * The ResultSet to wrap. 064 * @return a new delegate. 065 */ 066 public static ResultSet wrapResultSet(final Connection connection, final ResultSet resultSet) { 067 if (null == resultSet) { 068 return null; 069 } 070 return new DelegatingResultSet(connection, resultSet); 071 } 072 073 /** 074 * Wraps the given result set in a delegate. 075 * 076 * @param statement 077 * The Statement which created the ResultSet. 078 * @param resultSet 079 * The ResultSet to wrap. 080 * @return a new delegate. 081 */ 082 public static ResultSet wrapResultSet(final Statement statement, final ResultSet resultSet) { 083 if (null == resultSet) { 084 return null; 085 } 086 return new DelegatingResultSet(statement, resultSet); 087 } 088 089 /** My delegate. **/ 090 private final ResultSet resultSet; 091 092 /** The Statement that created me, if any. **/ 093 private Statement statement; 094 095 /** The Connection that created me, if any. **/ 096 private Connection connection; 097 098 /** 099 * Creates a wrapper for the ResultSet which traces this ResultSet to the Connection which created it (via, for 100 * example DatabaseMetadata), and the code which created it. 101 * <p> 102 * Private to ensure all construction is {@link #wrapResultSet(Connection, ResultSet)} 103 * </p> 104 * 105 * @param connection 106 * Connection which created this ResultSet 107 * @param resultSet 108 * ResultSet to wrap 109 */ 110 private DelegatingResultSet(final Connection connection, final ResultSet resultSet) { 111 super((AbandonedTrace) connection); 112 this.connection = connection; 113 this.resultSet = resultSet; 114 } 115 116 /** 117 * Creates a wrapper for the ResultSet which traces this ResultSet to the Statement which created it and the code 118 * which created it. 119 * <p> 120 * Private to ensure all construction is {@link #wrapResultSet(Statement, ResultSet)} 121 * </p> 122 * 123 * @param statement 124 * The Statement which created the ResultSet. 125 * @param resultSet 126 * The ResultSet to wrap. 127 */ 128 private DelegatingResultSet(final Statement statement, final ResultSet resultSet) { 129 super((AbandonedTrace) statement); 130 this.statement = statement; 131 this.resultSet = resultSet; 132 } 133 134 @Override 135 public boolean absolute(final int row) throws SQLException { 136 try { 137 return resultSet.absolute(row); 138 } catch (final SQLException e) { 139 handleException(e); 140 return false; 141 } 142 } 143 144 @Override 145 public void afterLast() throws SQLException { 146 try { 147 resultSet.afterLast(); 148 } catch (final SQLException e) { 149 handleException(e); 150 } 151 } 152 153 @Override 154 public void beforeFirst() throws SQLException { 155 try { 156 resultSet.beforeFirst(); 157 } catch (final SQLException e) { 158 handleException(e); 159 } 160 } 161 162 @Override 163 public void cancelRowUpdates() throws SQLException { 164 try { 165 resultSet.cancelRowUpdates(); 166 } catch (final SQLException e) { 167 handleException(e); 168 } 169 } 170 171 @Override 172 public void clearWarnings() throws SQLException { 173 try { 174 resultSet.clearWarnings(); 175 } catch (final SQLException e) { 176 handleException(e); 177 } 178 } 179 180 /** 181 * Wrapper for close of ResultSet which removes this result set from being traced then calls close on the original 182 * ResultSet. 183 */ 184 @Override 185 public void close() throws SQLException { 186 try { 187 if (statement != null) { 188 removeThisTrace(statement); 189 statement = null; 190 } 191 if (connection != null) { 192 removeThisTrace(connection); 193 connection = null; 194 } 195 resultSet.close(); 196 } catch (final SQLException e) { 197 handleException(e); 198 } 199 } 200 201 @Override 202 public void deleteRow() throws SQLException { 203 try { 204 resultSet.deleteRow(); 205 } catch (final SQLException e) { 206 handleException(e); 207 } 208 } 209 210 @Override 211 public int findColumn(final String columnName) throws SQLException { 212 try { 213 return resultSet.findColumn(columnName); 214 } catch (final SQLException e) { 215 handleException(e); 216 return 0; 217 } 218 } 219 220 @Override 221 public boolean first() throws SQLException { 222 try { 223 return resultSet.first(); 224 } catch (final SQLException e) { 225 handleException(e); 226 return false; 227 } 228 } 229 230 @Override 231 public Array getArray(final int i) throws SQLException { 232 try { 233 return resultSet.getArray(i); 234 } catch (final SQLException e) { 235 handleException(e); 236 return null; 237 } 238 } 239 240 @Override 241 public Array getArray(final String colName) throws SQLException { 242 try { 243 return resultSet.getArray(colName); 244 } catch (final SQLException e) { 245 handleException(e); 246 return null; 247 } 248 } 249 250 @Override 251 public InputStream getAsciiStream(final int columnIndex) throws SQLException { 252 try { 253 return resultSet.getAsciiStream(columnIndex); 254 } catch (final SQLException e) { 255 handleException(e); 256 return null; 257 } 258 } 259 260 @Override 261 public InputStream getAsciiStream(final String columnName) throws SQLException { 262 try { 263 return resultSet.getAsciiStream(columnName); 264 } catch (final SQLException e) { 265 handleException(e); 266 return null; 267 } 268 } 269 270 @Override 271 public BigDecimal getBigDecimal(final int columnIndex) throws SQLException { 272 try { 273 return resultSet.getBigDecimal(columnIndex); 274 } catch (final SQLException e) { 275 handleException(e); 276 return null; 277 } 278 } 279 280 /** @deprecated Use {@link #getBigDecimal(int)} */ 281 @Deprecated 282 @Override 283 public BigDecimal getBigDecimal(final int columnIndex, final int scale) throws SQLException { 284 try { 285 return resultSet.getBigDecimal(columnIndex); 286 } catch (final SQLException e) { 287 handleException(e); 288 return null; 289 } 290 } 291 292 @Override 293 public BigDecimal getBigDecimal(final String columnName) throws SQLException { 294 try { 295 return resultSet.getBigDecimal(columnName); 296 } catch (final SQLException e) { 297 handleException(e); 298 return null; 299 } 300 } 301 302 /** @deprecated Use {@link #getBigDecimal(String)} */ 303 @Deprecated 304 @Override 305 public BigDecimal getBigDecimal(final String columnName, final int scale) throws SQLException { 306 try { 307 return resultSet.getBigDecimal(columnName); 308 } catch (final SQLException e) { 309 handleException(e); 310 return null; 311 } 312 } 313 314 @Override 315 public InputStream getBinaryStream(final int columnIndex) throws SQLException { 316 try { 317 return resultSet.getBinaryStream(columnIndex); 318 } catch (final SQLException e) { 319 handleException(e); 320 return null; 321 } 322 } 323 324 @Override 325 public InputStream getBinaryStream(final String columnName) throws SQLException { 326 try { 327 return resultSet.getBinaryStream(columnName); 328 } catch (final SQLException e) { 329 handleException(e); 330 return null; 331 } 332 } 333 334 @Override 335 public Blob getBlob(final int i) throws SQLException { 336 try { 337 return resultSet.getBlob(i); 338 } catch (final SQLException e) { 339 handleException(e); 340 return null; 341 } 342 } 343 344 @Override 345 public Blob getBlob(final String colName) throws SQLException { 346 try { 347 return resultSet.getBlob(colName); 348 } catch (final SQLException e) { 349 handleException(e); 350 return null; 351 } 352 } 353 354 @Override 355 public boolean getBoolean(final int columnIndex) throws SQLException { 356 try { 357 return resultSet.getBoolean(columnIndex); 358 } catch (final SQLException e) { 359 handleException(e); 360 return false; 361 } 362 } 363 364 @Override 365 public boolean getBoolean(final String columnName) throws SQLException { 366 try { 367 return resultSet.getBoolean(columnName); 368 } catch (final SQLException e) { 369 handleException(e); 370 return false; 371 } 372 } 373 374 @Override 375 public byte getByte(final int columnIndex) throws SQLException { 376 try { 377 return resultSet.getByte(columnIndex); 378 } catch (final SQLException e) { 379 handleException(e); 380 return 0; 381 } 382 } 383 384 @Override 385 public byte getByte(final String columnName) throws SQLException { 386 try { 387 return resultSet.getByte(columnName); 388 } catch (final SQLException e) { 389 handleException(e); 390 return 0; 391 } 392 } 393 394 @Override 395 public byte[] getBytes(final int columnIndex) throws SQLException { 396 try { 397 return resultSet.getBytes(columnIndex); 398 } catch (final SQLException e) { 399 handleException(e); 400 return null; 401 } 402 } 403 404 @Override 405 public byte[] getBytes(final String columnName) throws SQLException { 406 try { 407 return resultSet.getBytes(columnName); 408 } catch (final SQLException e) { 409 handleException(e); 410 return null; 411 } 412 } 413 414 @Override 415 public Reader getCharacterStream(final int columnIndex) throws SQLException { 416 try { 417 return resultSet.getCharacterStream(columnIndex); 418 } catch (final SQLException e) { 419 handleException(e); 420 return null; 421 } 422 } 423 424 @Override 425 public Reader getCharacterStream(final String columnName) throws SQLException { 426 try { 427 return resultSet.getCharacterStream(columnName); 428 } catch (final SQLException e) { 429 handleException(e); 430 return null; 431 } 432 } 433 434 @Override 435 public Clob getClob(final int i) throws SQLException { 436 try { 437 return resultSet.getClob(i); 438 } catch (final SQLException e) { 439 handleException(e); 440 return null; 441 } 442 } 443 444 @Override 445 public Clob getClob(final String colName) throws SQLException { 446 try { 447 return resultSet.getClob(colName); 448 } catch (final SQLException e) { 449 handleException(e); 450 return null; 451 } 452 } 453 454 @Override 455 public int getConcurrency() throws SQLException { 456 try { 457 return resultSet.getConcurrency(); 458 } catch (final SQLException e) { 459 handleException(e); 460 return 0; 461 } 462 } 463 464 @Override 465 public String getCursorName() throws SQLException { 466 try { 467 return resultSet.getCursorName(); 468 } catch (final SQLException e) { 469 handleException(e); 470 return null; 471 } 472 } 473 474 @Override 475 public Date getDate(final int columnIndex) throws SQLException { 476 try { 477 return resultSet.getDate(columnIndex); 478 } catch (final SQLException e) { 479 handleException(e); 480 return null; 481 } 482 } 483 484 @Override 485 public Date getDate(final int columnIndex, final Calendar cal) throws SQLException { 486 try { 487 return resultSet.getDate(columnIndex, cal); 488 } catch (final SQLException e) { 489 handleException(e); 490 return null; 491 } 492 } 493 494 @Override 495 public Date getDate(final String columnName) throws SQLException { 496 try { 497 return resultSet.getDate(columnName); 498 } catch (final SQLException e) { 499 handleException(e); 500 return null; 501 } 502 } 503 504 @Override 505 public Date getDate(final String columnName, final Calendar cal) throws SQLException { 506 try { 507 return resultSet.getDate(columnName, cal); 508 } catch (final SQLException e) { 509 handleException(e); 510 return null; 511 } 512 } 513 514 /** 515 * Gets my delegate. 516 * 517 * @return my delegate. 518 */ 519 public ResultSet getDelegate() { 520 return resultSet; 521 } 522 523 @Override 524 public double getDouble(final int columnIndex) throws SQLException { 525 try { 526 return resultSet.getDouble(columnIndex); 527 } catch (final SQLException e) { 528 handleException(e); 529 return 0; 530 } 531 } 532 533 @Override 534 public double getDouble(final String columnName) throws SQLException { 535 try { 536 return resultSet.getDouble(columnName); 537 } catch (final SQLException e) { 538 handleException(e); 539 return 0; 540 } 541 } 542 543 @Override 544 public int getFetchDirection() throws SQLException { 545 try { 546 return resultSet.getFetchDirection(); 547 } catch (final SQLException e) { 548 handleException(e); 549 return 0; 550 } 551 } 552 553 @Override 554 public int getFetchSize() throws SQLException { 555 try { 556 return resultSet.getFetchSize(); 557 } catch (final SQLException e) { 558 handleException(e); 559 return 0; 560 } 561 } 562 563 @Override 564 public float getFloat(final int columnIndex) throws SQLException { 565 try { 566 return resultSet.getFloat(columnIndex); 567 } catch (final SQLException e) { 568 handleException(e); 569 return 0; 570 } 571 } 572 573 @Override 574 public float getFloat(final String columnName) throws SQLException { 575 try { 576 return resultSet.getFloat(columnName); 577 } catch (final SQLException e) { 578 handleException(e); 579 return 0; 580 } 581 } 582 583 @Override 584 public int getHoldability() throws SQLException { 585 try { 586 return resultSet.getHoldability(); 587 } catch (final SQLException e) { 588 handleException(e); 589 return 0; 590 } 591 } 592 593 /** 594 * If my underlying {@link ResultSet} is not a {@code DelegatingResultSet}, returns it, otherwise recursively 595 * invokes this method on my delegate. 596 * <p> 597 * Hence this method will return the first delegate that is not a {@code DelegatingResultSet}, or {@code null} when 598 * no non-{@code DelegatingResultSet} delegate can be found by traversing this chain. 599 * </p> 600 * <p> 601 * This method is useful when you may have nested {@code DelegatingResultSet}s, and you want to make sure to obtain 602 * a "genuine" {@link ResultSet}. 603 * </p> 604 * 605 * @return the innermost delegate. 606 */ 607 @SuppressWarnings("resource") 608 public ResultSet getInnermostDelegate() { 609 ResultSet r = resultSet; 610 while (r instanceof DelegatingResultSet) { 611 r = ((DelegatingResultSet) r).getDelegate(); 612 if (this == r) { 613 return null; 614 } 615 } 616 return r; 617 } 618 619 @Override 620 public int getInt(final int columnIndex) throws SQLException { 621 try { 622 return resultSet.getInt(columnIndex); 623 } catch (final SQLException e) { 624 handleException(e); 625 return 0; 626 } 627 } 628 629 @Override 630 public int getInt(final String columnName) throws SQLException { 631 try { 632 return resultSet.getInt(columnName); 633 } catch (final SQLException e) { 634 handleException(e); 635 return 0; 636 } 637 } 638 639 @Override 640 public long getLong(final int columnIndex) throws SQLException { 641 try { 642 return resultSet.getLong(columnIndex); 643 } catch (final SQLException e) { 644 handleException(e); 645 return 0; 646 } 647 } 648 649 @Override 650 public long getLong(final String columnName) throws SQLException { 651 try { 652 return resultSet.getLong(columnName); 653 } catch (final SQLException e) { 654 handleException(e); 655 return 0; 656 } 657 } 658 659 @Override 660 public ResultSetMetaData getMetaData() throws SQLException { 661 try { 662 return resultSet.getMetaData(); 663 } catch (final SQLException e) { 664 handleException(e); 665 return null; 666 } 667 } 668 669 @Override 670 public Reader getNCharacterStream(final int columnIndex) throws SQLException { 671 try { 672 return resultSet.getNCharacterStream(columnIndex); 673 } catch (final SQLException e) { 674 handleException(e); 675 return null; 676 } 677 } 678 679 @Override 680 public Reader getNCharacterStream(final String columnLabel) throws SQLException { 681 try { 682 return resultSet.getNCharacterStream(columnLabel); 683 } catch (final SQLException e) { 684 handleException(e); 685 return null; 686 } 687 } 688 689 @Override 690 public NClob getNClob(final int columnIndex) throws SQLException { 691 try { 692 return resultSet.getNClob(columnIndex); 693 } catch (final SQLException e) { 694 handleException(e); 695 return null; 696 } 697 } 698 699 @Override 700 public NClob getNClob(final String columnLabel) throws SQLException { 701 try { 702 return resultSet.getNClob(columnLabel); 703 } catch (final SQLException e) { 704 handleException(e); 705 return null; 706 } 707 } 708 709 @Override 710 public String getNString(final int columnIndex) throws SQLException { 711 try { 712 return resultSet.getNString(columnIndex); 713 } catch (final SQLException e) { 714 handleException(e); 715 return null; 716 } 717 } 718 719 @Override 720 public String getNString(final String columnLabel) throws SQLException { 721 try { 722 return resultSet.getNString(columnLabel); 723 } catch (final SQLException e) { 724 handleException(e); 725 return null; 726 } 727 } 728 729 @Override 730 public Object getObject(final int columnIndex) throws SQLException { 731 try { 732 return resultSet.getObject(columnIndex); 733 } catch (final SQLException e) { 734 handleException(e); 735 return null; 736 } 737 } 738 739 @Override 740 public <T> T getObject(final int columnIndex, final Class<T> type) throws SQLException { 741 try { 742 return Jdbc41Bridge.getObject(resultSet, columnIndex, type); 743 } catch (final SQLException e) { 744 handleException(e); 745 return null; 746 } 747 } 748 749 @Override 750 public Object getObject(final int i, final Map<String, Class<?>> map) throws SQLException { 751 try { 752 return resultSet.getObject(i, map); 753 } catch (final SQLException e) { 754 handleException(e); 755 return null; 756 } 757 } 758 759 @Override 760 public Object getObject(final String columnName) throws SQLException { 761 try { 762 return resultSet.getObject(columnName); 763 } catch (final SQLException e) { 764 handleException(e); 765 return null; 766 } 767 } 768 769 @Override 770 public <T> T getObject(final String columnLabel, final Class<T> type) throws SQLException { 771 try { 772 return Jdbc41Bridge.getObject(resultSet, columnLabel, type); 773 } catch (final SQLException e) { 774 handleException(e); 775 return null; 776 } 777 } 778 779 @Override 780 public Object getObject(final String colName, final Map<String, Class<?>> map) throws SQLException { 781 try { 782 return resultSet.getObject(colName, map); 783 } catch (final SQLException e) { 784 handleException(e); 785 return null; 786 } 787 } 788 789 @Override 790 public Ref getRef(final int i) throws SQLException { 791 try { 792 return resultSet.getRef(i); 793 } catch (final SQLException e) { 794 handleException(e); 795 return null; 796 } 797 } 798 799 @Override 800 public Ref getRef(final String colName) throws SQLException { 801 try { 802 return resultSet.getRef(colName); 803 } catch (final SQLException e) { 804 handleException(e); 805 return null; 806 } 807 } 808 809 @Override 810 public int getRow() throws SQLException { 811 try { 812 return resultSet.getRow(); 813 } catch (final SQLException e) { 814 handleException(e); 815 return 0; 816 } 817 } 818 819 @Override 820 public RowId getRowId(final int columnIndex) throws SQLException { 821 try { 822 return resultSet.getRowId(columnIndex); 823 } catch (final SQLException e) { 824 handleException(e); 825 return null; 826 } 827 } 828 829 @Override 830 public RowId getRowId(final String columnLabel) throws SQLException { 831 try { 832 return resultSet.getRowId(columnLabel); 833 } catch (final SQLException e) { 834 handleException(e); 835 return null; 836 } 837 } 838 839 @Override 840 public short getShort(final int columnIndex) throws SQLException { 841 try { 842 return resultSet.getShort(columnIndex); 843 } catch (final SQLException e) { 844 handleException(e); 845 return 0; 846 } 847 } 848 849 @Override 850 public short getShort(final String columnName) throws SQLException { 851 try { 852 return resultSet.getShort(columnName); 853 } catch (final SQLException e) { 854 handleException(e); 855 return 0; 856 } 857 } 858 859 @Override 860 public SQLXML getSQLXML(final int columnIndex) throws SQLException { 861 try { 862 return resultSet.getSQLXML(columnIndex); 863 } catch (final SQLException e) { 864 handleException(e); 865 return null; 866 } 867 } 868 869 @Override 870 public SQLXML getSQLXML(final String columnLabel) throws SQLException { 871 try { 872 return resultSet.getSQLXML(columnLabel); 873 } catch (final SQLException e) { 874 handleException(e); 875 return null; 876 } 877 } 878 879 @Override 880 public Statement getStatement() throws SQLException { 881 return statement; 882 } 883 884 @Override 885 public String getString(final int columnIndex) throws SQLException { 886 try { 887 return resultSet.getString(columnIndex); 888 } catch (final SQLException e) { 889 handleException(e); 890 return null; 891 } 892 } 893 894 @Override 895 public String getString(final String columnName) throws SQLException { 896 try { 897 return resultSet.getString(columnName); 898 } catch (final SQLException e) { 899 handleException(e); 900 return null; 901 } 902 } 903 904 @Override 905 public Time getTime(final int columnIndex) throws SQLException { 906 try { 907 return resultSet.getTime(columnIndex); 908 } catch (final SQLException e) { 909 handleException(e); 910 return null; 911 } 912 } 913 914 @Override 915 public Time getTime(final int columnIndex, final Calendar cal) throws SQLException { 916 try { 917 return resultSet.getTime(columnIndex, cal); 918 } catch (final SQLException e) { 919 handleException(e); 920 return null; 921 } 922 } 923 924 @Override 925 public Time getTime(final String columnName) throws SQLException { 926 try { 927 return resultSet.getTime(columnName); 928 } catch (final SQLException e) { 929 handleException(e); 930 return null; 931 } 932 } 933 934 @Override 935 public Time getTime(final String columnName, final Calendar cal) throws SQLException { 936 try { 937 return resultSet.getTime(columnName, cal); 938 } catch (final SQLException e) { 939 handleException(e); 940 return null; 941 } 942 } 943 944 @Override 945 public Timestamp getTimestamp(final int columnIndex) throws SQLException { 946 try { 947 return resultSet.getTimestamp(columnIndex); 948 } catch (final SQLException e) { 949 handleException(e); 950 return null; 951 } 952 } 953 954 @Override 955 public Timestamp getTimestamp(final int columnIndex, final Calendar cal) throws SQLException { 956 try { 957 return resultSet.getTimestamp(columnIndex, cal); 958 } catch (final SQLException e) { 959 handleException(e); 960 return null; 961 } 962 } 963 964 @Override 965 public Timestamp getTimestamp(final String columnName) throws SQLException { 966 try { 967 return resultSet.getTimestamp(columnName); 968 } catch (final SQLException e) { 969 handleException(e); 970 return null; 971 } 972 } 973 974 @Override 975 public Timestamp getTimestamp(final String columnName, final Calendar cal) throws SQLException { 976 try { 977 return resultSet.getTimestamp(columnName, cal); 978 } catch (final SQLException e) { 979 handleException(e); 980 return null; 981 } 982 } 983 984 @Override 985 public int getType() throws SQLException { 986 try { 987 return resultSet.getType(); 988 } catch (final SQLException e) { 989 handleException(e); 990 return 0; 991 } 992 } 993 994 /** @deprecated Use {@link #getCharacterStream(int)} */ 995 @Deprecated 996 @Override 997 public InputStream getUnicodeStream(final int columnIndex) throws SQLException { 998 try { 999 return resultSet.getUnicodeStream(columnIndex); 1000 } catch (final SQLException e) { 1001 handleException(e); 1002 return null; 1003 } 1004 } 1005 1006 /** @deprecated Use {@link #getCharacterStream(String)} */ 1007 @Deprecated 1008 @Override 1009 public InputStream getUnicodeStream(final String columnName) throws SQLException { 1010 try { 1011 return resultSet.getUnicodeStream(columnName); 1012 } catch (final SQLException e) { 1013 handleException(e); 1014 return null; 1015 } 1016 } 1017 1018 @Override 1019 public java.net.URL getURL(final int columnIndex) throws SQLException { 1020 try { 1021 return resultSet.getURL(columnIndex); 1022 } catch (final SQLException e) { 1023 handleException(e); 1024 return null; 1025 } 1026 } 1027 1028 @Override 1029 public java.net.URL getURL(final String columnName) throws SQLException { 1030 try { 1031 return resultSet.getURL(columnName); 1032 } catch (final SQLException e) { 1033 handleException(e); 1034 return null; 1035 } 1036 } 1037 1038 @Override 1039 public SQLWarning getWarnings() throws SQLException { 1040 try { 1041 return resultSet.getWarnings(); 1042 } catch (final SQLException e) { 1043 handleException(e); 1044 return null; 1045 } 1046 } 1047 1048 protected void handleException(final SQLException e) throws SQLException { 1049 if (statement instanceof DelegatingStatement) { 1050 ((DelegatingStatement) statement).handleException(e); 1051 } else if (connection instanceof DelegatingConnection) { 1052 ((DelegatingConnection<?>) connection).handleException(e); 1053 } else { 1054 throw e; 1055 } 1056 } 1057 1058 @Override 1059 public void insertRow() throws SQLException { 1060 try { 1061 resultSet.insertRow(); 1062 } catch (final SQLException e) { 1063 handleException(e); 1064 } 1065 } 1066 1067 @Override 1068 public boolean isAfterLast() throws SQLException { 1069 try { 1070 return resultSet.isAfterLast(); 1071 } catch (final SQLException e) { 1072 handleException(e); 1073 return false; 1074 } 1075 } 1076 1077 @Override 1078 public boolean isBeforeFirst() throws SQLException { 1079 try { 1080 return resultSet.isBeforeFirst(); 1081 } catch (final SQLException e) { 1082 handleException(e); 1083 return false; 1084 } 1085 } 1086 1087 @Override 1088 public boolean isClosed() throws SQLException { 1089 try { 1090 return resultSet.isClosed(); 1091 } catch (final SQLException e) { 1092 handleException(e); 1093 return false; 1094 } 1095 } 1096 1097 @Override 1098 public boolean isFirst() throws SQLException { 1099 try { 1100 return resultSet.isFirst(); 1101 } catch (final SQLException e) { 1102 handleException(e); 1103 return false; 1104 } 1105 } 1106 1107 @Override 1108 public boolean isLast() throws SQLException { 1109 try { 1110 return resultSet.isLast(); 1111 } catch (final SQLException e) { 1112 handleException(e); 1113 return false; 1114 } 1115 } 1116 1117 @Override 1118 public boolean isWrapperFor(final Class<?> iface) throws SQLException { 1119 if (iface.isAssignableFrom(getClass())) { 1120 return true; 1121 } 1122 if (iface.isAssignableFrom(resultSet.getClass())) { 1123 return true; 1124 } 1125 return resultSet.isWrapperFor(iface); 1126 } 1127 1128 @Override 1129 public boolean last() throws SQLException { 1130 try { 1131 return resultSet.last(); 1132 } catch (final SQLException e) { 1133 handleException(e); 1134 return false; 1135 } 1136 } 1137 1138 @Override 1139 public void moveToCurrentRow() throws SQLException { 1140 try { 1141 resultSet.moveToCurrentRow(); 1142 } catch (final SQLException e) { 1143 handleException(e); 1144 } 1145 } 1146 1147 @Override 1148 public void moveToInsertRow() throws SQLException { 1149 try { 1150 resultSet.moveToInsertRow(); 1151 } catch (final SQLException e) { 1152 handleException(e); 1153 } 1154 } 1155 1156 @Override 1157 public boolean next() throws SQLException { 1158 try { 1159 return resultSet.next(); 1160 } catch (final SQLException e) { 1161 handleException(e); 1162 return false; 1163 } 1164 } 1165 1166 @Override 1167 public boolean previous() throws SQLException { 1168 try { 1169 return resultSet.previous(); 1170 } catch (final SQLException e) { 1171 handleException(e); 1172 return false; 1173 } 1174 } 1175 1176 @Override 1177 public void refreshRow() throws SQLException { 1178 try { 1179 resultSet.refreshRow(); 1180 } catch (final SQLException e) { 1181 handleException(e); 1182 } 1183 } 1184 1185 @Override 1186 public boolean relative(final int rows) throws SQLException { 1187 try { 1188 return resultSet.relative(rows); 1189 } catch (final SQLException e) { 1190 handleException(e); 1191 return false; 1192 } 1193 } 1194 1195 @Override 1196 public boolean rowDeleted() throws SQLException { 1197 try { 1198 return resultSet.rowDeleted(); 1199 } catch (final SQLException e) { 1200 handleException(e); 1201 return false; 1202 } 1203 } 1204 1205 @Override 1206 public boolean rowInserted() throws SQLException { 1207 try { 1208 return resultSet.rowInserted(); 1209 } catch (final SQLException e) { 1210 handleException(e); 1211 return false; 1212 } 1213 } 1214 1215 @Override 1216 public boolean rowUpdated() throws SQLException { 1217 try { 1218 return resultSet.rowUpdated(); 1219 } catch (final SQLException e) { 1220 handleException(e); 1221 return false; 1222 } 1223 } 1224 1225 @Override 1226 public void setFetchDirection(final int direction) throws SQLException { 1227 try { 1228 resultSet.setFetchDirection(direction); 1229 } catch (final SQLException e) { 1230 handleException(e); 1231 } 1232 } 1233 1234 @Override 1235 public void setFetchSize(final int rows) throws SQLException { 1236 try { 1237 resultSet.setFetchSize(rows); 1238 } catch (final SQLException e) { 1239 handleException(e); 1240 } 1241 } 1242 1243 @Override 1244 public synchronized String toString() { 1245 return super.toString() + "[resultSet=" + resultSet + ", statement=" + statement + ", connection=" + connection + "]"; 1246 } 1247 1248 @Override 1249 public <T> T unwrap(final Class<T> iface) throws SQLException { 1250 if (iface.isAssignableFrom(getClass())) { 1251 return iface.cast(this); 1252 } 1253 if (iface.isAssignableFrom(resultSet.getClass())) { 1254 return iface.cast(resultSet); 1255 } 1256 return resultSet.unwrap(iface); 1257 } 1258 1259 @Override 1260 public void updateArray(final int columnIndex, final Array x) throws SQLException { 1261 try { 1262 resultSet.updateArray(columnIndex, x); 1263 } catch (final SQLException e) { 1264 handleException(e); 1265 } 1266 } 1267 1268 @Override 1269 public void updateArray(final String columnName, final Array x) throws SQLException { 1270 try { 1271 resultSet.updateArray(columnName, x); 1272 } catch (final SQLException e) { 1273 handleException(e); 1274 } 1275 } 1276 1277 @Override 1278 public void updateAsciiStream(final int columnIndex, final InputStream inputStream) throws SQLException { 1279 try { 1280 resultSet.updateAsciiStream(columnIndex, inputStream); 1281 } catch (final SQLException e) { 1282 handleException(e); 1283 } 1284 } 1285 1286 @Override 1287 public void updateAsciiStream(final int columnIndex, final InputStream x, final int length) throws SQLException { 1288 try { 1289 resultSet.updateAsciiStream(columnIndex, x, length); 1290 } catch (final SQLException e) { 1291 handleException(e); 1292 } 1293 } 1294 1295 @Override 1296 public void updateAsciiStream(final int columnIndex, final InputStream inputStream, final long length) 1297 throws SQLException { 1298 try { 1299 resultSet.updateAsciiStream(columnIndex, inputStream, length); 1300 } catch (final SQLException e) { 1301 handleException(e); 1302 } 1303 } 1304 1305 @Override 1306 public void updateAsciiStream(final String columnLabel, final InputStream inputStream) throws SQLException { 1307 try { 1308 resultSet.updateAsciiStream(columnLabel, inputStream); 1309 } catch (final SQLException e) { 1310 handleException(e); 1311 } 1312 } 1313 1314 @Override 1315 public void updateAsciiStream(final String columnName, final InputStream x, final int length) throws SQLException { 1316 try { 1317 resultSet.updateAsciiStream(columnName, x, length); 1318 } catch (final SQLException e) { 1319 handleException(e); 1320 } 1321 } 1322 1323 @Override 1324 public void updateAsciiStream(final String columnLabel, final InputStream inputStream, final long length) 1325 throws SQLException { 1326 try { 1327 resultSet.updateAsciiStream(columnLabel, inputStream, length); 1328 } catch (final SQLException e) { 1329 handleException(e); 1330 } 1331 } 1332 1333 @Override 1334 public void updateBigDecimal(final int columnIndex, final BigDecimal x) throws SQLException { 1335 try { 1336 resultSet.updateBigDecimal(columnIndex, x); 1337 } catch (final SQLException e) { 1338 handleException(e); 1339 } 1340 } 1341 1342 @Override 1343 public void updateBigDecimal(final String columnName, final BigDecimal x) throws SQLException { 1344 try { 1345 resultSet.updateBigDecimal(columnName, x); 1346 } catch (final SQLException e) { 1347 handleException(e); 1348 } 1349 } 1350 1351 @Override 1352 public void updateBinaryStream(final int columnIndex, final InputStream inputStream) throws SQLException { 1353 try { 1354 resultSet.updateBinaryStream(columnIndex, inputStream); 1355 } catch (final SQLException e) { 1356 handleException(e); 1357 } 1358 } 1359 1360 @Override 1361 public void updateBinaryStream(final int columnIndex, final InputStream x, final int length) throws SQLException { 1362 try { 1363 resultSet.updateBinaryStream(columnIndex, x, length); 1364 } catch (final SQLException e) { 1365 handleException(e); 1366 } 1367 } 1368 1369 @Override 1370 public void updateBinaryStream(final int columnIndex, final InputStream inputStream, final long length) 1371 throws SQLException { 1372 try { 1373 resultSet.updateBinaryStream(columnIndex, inputStream, length); 1374 } catch (final SQLException e) { 1375 handleException(e); 1376 } 1377 } 1378 1379 @Override 1380 public void updateBinaryStream(final String columnLabel, final InputStream inputStream) throws SQLException { 1381 try { 1382 resultSet.updateBinaryStream(columnLabel, inputStream); 1383 } catch (final SQLException e) { 1384 handleException(e); 1385 } 1386 } 1387 1388 @Override 1389 public void updateBinaryStream(final String columnName, final InputStream x, final int length) throws SQLException { 1390 try { 1391 resultSet.updateBinaryStream(columnName, x, length); 1392 } catch (final SQLException e) { 1393 handleException(e); 1394 } 1395 } 1396 1397 @Override 1398 public void updateBinaryStream(final String columnLabel, final InputStream inputStream, final long length) 1399 throws SQLException { 1400 try { 1401 resultSet.updateBinaryStream(columnLabel, inputStream, length); 1402 } catch (final SQLException e) { 1403 handleException(e); 1404 } 1405 } 1406 1407 @Override 1408 public void updateBlob(final int columnIndex, final Blob x) throws SQLException { 1409 try { 1410 resultSet.updateBlob(columnIndex, x); 1411 } catch (final SQLException e) { 1412 handleException(e); 1413 } 1414 } 1415 1416 @Override 1417 public void updateBlob(final int columnIndex, final InputStream inputStream) throws SQLException { 1418 try { 1419 resultSet.updateBlob(columnIndex, inputStream); 1420 } catch (final SQLException e) { 1421 handleException(e); 1422 } 1423 } 1424 1425 @Override 1426 public void updateBlob(final int columnIndex, final InputStream inputStream, final long length) 1427 throws SQLException { 1428 try { 1429 resultSet.updateBlob(columnIndex, inputStream, length); 1430 } catch (final SQLException e) { 1431 handleException(e); 1432 } 1433 } 1434 1435 @Override 1436 public void updateBlob(final String columnName, final Blob x) throws SQLException { 1437 try { 1438 resultSet.updateBlob(columnName, x); 1439 } catch (final SQLException e) { 1440 handleException(e); 1441 } 1442 } 1443 1444 @Override 1445 public void updateBlob(final String columnLabel, final InputStream inputStream) throws SQLException { 1446 try { 1447 resultSet.updateBlob(columnLabel, inputStream); 1448 } catch (final SQLException e) { 1449 handleException(e); 1450 } 1451 } 1452 1453 @Override 1454 public void updateBlob(final String columnLabel, final InputStream inputStream, final long length) 1455 throws SQLException { 1456 try { 1457 resultSet.updateBlob(columnLabel, inputStream, length); 1458 } catch (final SQLException e) { 1459 handleException(e); 1460 } 1461 } 1462 1463 @Override 1464 public void updateBoolean(final int columnIndex, final boolean x) throws SQLException { 1465 try { 1466 resultSet.updateBoolean(columnIndex, x); 1467 } catch (final SQLException e) { 1468 handleException(e); 1469 } 1470 } 1471 1472 @Override 1473 public void updateBoolean(final String columnName, final boolean x) throws SQLException { 1474 try { 1475 resultSet.updateBoolean(columnName, x); 1476 } catch (final SQLException e) { 1477 handleException(e); 1478 } 1479 } 1480 1481 @Override 1482 public void updateByte(final int columnIndex, final byte x) throws SQLException { 1483 try { 1484 resultSet.updateByte(columnIndex, x); 1485 } catch (final SQLException e) { 1486 handleException(e); 1487 } 1488 } 1489 1490 @Override 1491 public void updateByte(final String columnName, final byte x) throws SQLException { 1492 try { 1493 resultSet.updateByte(columnName, x); 1494 } catch (final SQLException e) { 1495 handleException(e); 1496 } 1497 } 1498 1499 @Override 1500 public void updateBytes(final int columnIndex, final byte[] x) throws SQLException { 1501 try { 1502 resultSet.updateBytes(columnIndex, x); 1503 } catch (final SQLException e) { 1504 handleException(e); 1505 } 1506 } 1507 1508 @Override 1509 public void updateBytes(final String columnName, final byte[] x) throws SQLException { 1510 try { 1511 resultSet.updateBytes(columnName, x); 1512 } catch (final SQLException e) { 1513 handleException(e); 1514 } 1515 } 1516 1517 @Override 1518 public void updateCharacterStream(final int columnIndex, final Reader reader) throws SQLException { 1519 try { 1520 resultSet.updateCharacterStream(columnIndex, reader); 1521 } catch (final SQLException e) { 1522 handleException(e); 1523 } 1524 } 1525 1526 @Override 1527 public void updateCharacterStream(final int columnIndex, final Reader x, final int length) throws SQLException { 1528 try { 1529 resultSet.updateCharacterStream(columnIndex, x, length); 1530 } catch (final SQLException e) { 1531 handleException(e); 1532 } 1533 } 1534 1535 @Override 1536 public void updateCharacterStream(final int columnIndex, final Reader reader, final long length) 1537 throws SQLException { 1538 try { 1539 resultSet.updateCharacterStream(columnIndex, reader, length); 1540 } catch (final SQLException e) { 1541 handleException(e); 1542 } 1543 } 1544 1545 @Override 1546 public void updateCharacterStream(final String columnLabel, final Reader reader) throws SQLException { 1547 try { 1548 resultSet.updateCharacterStream(columnLabel, reader); 1549 } catch (final SQLException e) { 1550 handleException(e); 1551 } 1552 } 1553 1554 @Override 1555 public void updateCharacterStream(final String columnName, final Reader reader, final int length) 1556 throws SQLException { 1557 try { 1558 resultSet.updateCharacterStream(columnName, reader, length); 1559 } catch (final SQLException e) { 1560 handleException(e); 1561 } 1562 } 1563 1564 @Override 1565 public void updateCharacterStream(final String columnLabel, final Reader reader, final long length) 1566 throws SQLException { 1567 try { 1568 resultSet.updateCharacterStream(columnLabel, reader, length); 1569 } catch (final SQLException e) { 1570 handleException(e); 1571 } 1572 } 1573 1574 @Override 1575 public void updateClob(final int columnIndex, final Clob x) throws SQLException { 1576 try { 1577 resultSet.updateClob(columnIndex, x); 1578 } catch (final SQLException e) { 1579 handleException(e); 1580 } 1581 } 1582 1583 @Override 1584 public void updateClob(final int columnIndex, final Reader reader) throws SQLException { 1585 try { 1586 resultSet.updateClob(columnIndex, reader); 1587 } catch (final SQLException e) { 1588 handleException(e); 1589 } 1590 } 1591 1592 @Override 1593 public void updateClob(final int columnIndex, final Reader reader, final long length) throws SQLException { 1594 try { 1595 resultSet.updateClob(columnIndex, reader, length); 1596 } catch (final SQLException e) { 1597 handleException(e); 1598 } 1599 } 1600 1601 @Override 1602 public void updateClob(final String columnName, final Clob x) throws SQLException { 1603 try { 1604 resultSet.updateClob(columnName, x); 1605 } catch (final SQLException e) { 1606 handleException(e); 1607 } 1608 } 1609 1610 @Override 1611 public void updateClob(final String columnLabel, final Reader reader) throws SQLException { 1612 try { 1613 resultSet.updateClob(columnLabel, reader); 1614 } catch (final SQLException e) { 1615 handleException(e); 1616 } 1617 } 1618 1619 @Override 1620 public void updateClob(final String columnLabel, final Reader reader, final long length) throws SQLException { 1621 try { 1622 resultSet.updateClob(columnLabel, reader, length); 1623 } catch (final SQLException e) { 1624 handleException(e); 1625 } 1626 } 1627 1628 @Override 1629 public void updateDate(final int columnIndex, final Date x) throws SQLException { 1630 try { 1631 resultSet.updateDate(columnIndex, x); 1632 } catch (final SQLException e) { 1633 handleException(e); 1634 } 1635 } 1636 1637 @Override 1638 public void updateDate(final String columnName, final Date x) throws SQLException { 1639 try { 1640 resultSet.updateDate(columnName, x); 1641 } catch (final SQLException e) { 1642 handleException(e); 1643 } 1644 } 1645 1646 @Override 1647 public void updateDouble(final int columnIndex, final double x) throws SQLException { 1648 try { 1649 resultSet.updateDouble(columnIndex, x); 1650 } catch (final SQLException e) { 1651 handleException(e); 1652 } 1653 } 1654 1655 @Override 1656 public void updateDouble(final String columnName, final double x) throws SQLException { 1657 try { 1658 resultSet.updateDouble(columnName, x); 1659 } catch (final SQLException e) { 1660 handleException(e); 1661 } 1662 } 1663 1664 @Override 1665 public void updateFloat(final int columnIndex, final float x) throws SQLException { 1666 try { 1667 resultSet.updateFloat(columnIndex, x); 1668 } catch (final SQLException e) { 1669 handleException(e); 1670 } 1671 } 1672 1673 @Override 1674 public void updateFloat(final String columnName, final float x) throws SQLException { 1675 try { 1676 resultSet.updateFloat(columnName, x); 1677 } catch (final SQLException e) { 1678 handleException(e); 1679 } 1680 } 1681 1682 @Override 1683 public void updateInt(final int columnIndex, final int x) throws SQLException { 1684 try { 1685 resultSet.updateInt(columnIndex, x); 1686 } catch (final SQLException e) { 1687 handleException(e); 1688 } 1689 } 1690 1691 @Override 1692 public void updateInt(final String columnName, final int x) throws SQLException { 1693 try { 1694 resultSet.updateInt(columnName, x); 1695 } catch (final SQLException e) { 1696 handleException(e); 1697 } 1698 } 1699 1700 @Override 1701 public void updateLong(final int columnIndex, final long x) throws SQLException { 1702 try { 1703 resultSet.updateLong(columnIndex, x); 1704 } catch (final SQLException e) { 1705 handleException(e); 1706 } 1707 } 1708 1709 @Override 1710 public void updateLong(final String columnName, final long x) throws SQLException { 1711 try { 1712 resultSet.updateLong(columnName, x); 1713 } catch (final SQLException e) { 1714 handleException(e); 1715 } 1716 } 1717 1718 @Override 1719 public void updateNCharacterStream(final int columnIndex, final Reader reader) throws SQLException { 1720 try { 1721 resultSet.updateNCharacterStream(columnIndex, reader); 1722 } catch (final SQLException e) { 1723 handleException(e); 1724 } 1725 } 1726 1727 @Override 1728 public void updateNCharacterStream(final int columnIndex, final Reader reader, final long length) 1729 throws SQLException { 1730 try { 1731 resultSet.updateNCharacterStream(columnIndex, reader, length); 1732 } catch (final SQLException e) { 1733 handleException(e); 1734 } 1735 } 1736 1737 @Override 1738 public void updateNCharacterStream(final String columnLabel, final Reader reader) throws SQLException { 1739 try { 1740 resultSet.updateNCharacterStream(columnLabel, reader); 1741 } catch (final SQLException e) { 1742 handleException(e); 1743 } 1744 } 1745 1746 @Override 1747 public void updateNCharacterStream(final String columnLabel, final Reader reader, final long length) 1748 throws SQLException { 1749 try { 1750 resultSet.updateNCharacterStream(columnLabel, reader, length); 1751 } catch (final SQLException e) { 1752 handleException(e); 1753 } 1754 } 1755 1756 @Override 1757 public void updateNClob(final int columnIndex, final NClob value) throws SQLException { 1758 try { 1759 resultSet.updateNClob(columnIndex, value); 1760 } catch (final SQLException e) { 1761 handleException(e); 1762 } 1763 } 1764 1765 @Override 1766 public void updateNClob(final int columnIndex, final Reader reader) throws SQLException { 1767 try { 1768 resultSet.updateNClob(columnIndex, reader); 1769 } catch (final SQLException e) { 1770 handleException(e); 1771 } 1772 } 1773 1774 @Override 1775 public void updateNClob(final int columnIndex, final Reader reader, final long length) throws SQLException { 1776 try { 1777 resultSet.updateNClob(columnIndex, reader, length); 1778 } catch (final SQLException e) { 1779 handleException(e); 1780 } 1781 } 1782 1783 @Override 1784 public void updateNClob(final String columnLabel, final NClob value) throws SQLException { 1785 try { 1786 resultSet.updateNClob(columnLabel, value); 1787 } catch (final SQLException e) { 1788 handleException(e); 1789 } 1790 } 1791 1792 @Override 1793 public void updateNClob(final String columnLabel, final Reader reader) throws SQLException { 1794 try { 1795 resultSet.updateNClob(columnLabel, reader); 1796 } catch (final SQLException e) { 1797 handleException(e); 1798 } 1799 } 1800 1801 @Override 1802 public void updateNClob(final String columnLabel, final Reader reader, final long length) throws SQLException { 1803 try { 1804 resultSet.updateNClob(columnLabel, reader, length); 1805 } catch (final SQLException e) { 1806 handleException(e); 1807 } 1808 } 1809 1810 @Override 1811 public void updateNString(final int columnIndex, final String value) throws SQLException { 1812 try { 1813 resultSet.updateNString(columnIndex, value); 1814 } catch (final SQLException e) { 1815 handleException(e); 1816 } 1817 } 1818 1819 @Override 1820 public void updateNString(final String columnLabel, final String value) throws SQLException { 1821 try { 1822 resultSet.updateNString(columnLabel, value); 1823 } catch (final SQLException e) { 1824 handleException(e); 1825 } 1826 } 1827 1828 @Override 1829 public void updateNull(final int columnIndex) throws SQLException { 1830 try { 1831 resultSet.updateNull(columnIndex); 1832 } catch (final SQLException e) { 1833 handleException(e); 1834 } 1835 } 1836 1837 @Override 1838 public void updateNull(final String columnName) throws SQLException { 1839 try { 1840 resultSet.updateNull(columnName); 1841 } catch (final SQLException e) { 1842 handleException(e); 1843 } 1844 } 1845 1846 @Override 1847 public void updateObject(final int columnIndex, final Object x) throws SQLException { 1848 try { 1849 resultSet.updateObject(columnIndex, x); 1850 } catch (final SQLException e) { 1851 handleException(e); 1852 } 1853 } 1854 1855 @Override 1856 public void updateObject(final int columnIndex, final Object x, final int scale) throws SQLException { 1857 try { 1858 resultSet.updateObject(columnIndex, x); 1859 } catch (final SQLException e) { 1860 handleException(e); 1861 } 1862 } 1863 1864 /** 1865 * @since 2.5.0 1866 */ 1867 @Override 1868 public void updateObject(final int columnIndex, final Object x, final SQLType targetSqlType) throws SQLException { 1869 try { 1870 resultSet.updateObject(columnIndex, x, targetSqlType); 1871 } catch (final SQLException e) { 1872 handleException(e); 1873 } 1874 } 1875 1876 /** 1877 * @since 2.5.0 1878 */ 1879 @Override 1880 public void updateObject(final int columnIndex, final Object x, final SQLType targetSqlType, final int scaleOrLength) throws SQLException { 1881 try { 1882 resultSet.updateObject(columnIndex, x, targetSqlType, scaleOrLength); 1883 } catch (final SQLException e) { 1884 handleException(e); 1885 } 1886 } 1887 1888 @Override 1889 public void updateObject(final String columnName, final Object x) throws SQLException { 1890 try { 1891 resultSet.updateObject(columnName, x); 1892 } catch (final SQLException e) { 1893 handleException(e); 1894 } 1895 } 1896 1897 @Override 1898 public void updateObject(final String columnName, final Object x, final int scale) throws SQLException { 1899 try { 1900 resultSet.updateObject(columnName, x); 1901 } catch (final SQLException e) { 1902 handleException(e); 1903 } 1904 } 1905 1906 /** 1907 * @since 2.5.0 1908 */ 1909 @Override 1910 public void updateObject(final String columnLabel, final Object x, final SQLType targetSqlType) throws SQLException { 1911 try { 1912 resultSet.updateObject(columnLabel, x, targetSqlType); 1913 } catch (final SQLException e) { 1914 handleException(e); 1915 } 1916 } 1917 1918 /** 1919 * @since 2.5.0 1920 */ 1921 @Override 1922 public void updateObject(final String columnLabel, final Object x, final SQLType targetSqlType, final int scaleOrLength) 1923 throws SQLException { 1924 try { 1925 resultSet.updateObject(columnLabel, x, targetSqlType, scaleOrLength); 1926 } catch (final SQLException e) { 1927 handleException(e); 1928 } 1929 } 1930 1931 @Override 1932 public void updateRef(final int columnIndex, final Ref x) throws SQLException { 1933 try { 1934 resultSet.updateRef(columnIndex, x); 1935 } catch (final SQLException e) { 1936 handleException(e); 1937 } 1938 } 1939 1940 @Override 1941 public void updateRef(final String columnName, final Ref x) throws SQLException { 1942 try { 1943 resultSet.updateRef(columnName, x); 1944 } catch (final SQLException e) { 1945 handleException(e); 1946 } 1947 } 1948 1949 @Override 1950 public void updateRow() throws SQLException { 1951 try { 1952 resultSet.updateRow(); 1953 } catch (final SQLException e) { 1954 handleException(e); 1955 } 1956 } 1957 1958 @Override 1959 public void updateRowId(final int columnIndex, final RowId value) throws SQLException { 1960 try { 1961 resultSet.updateRowId(columnIndex, value); 1962 } catch (final SQLException e) { 1963 handleException(e); 1964 } 1965 } 1966 1967 @Override 1968 public void updateRowId(final String columnLabel, final RowId value) throws SQLException { 1969 try { 1970 resultSet.updateRowId(columnLabel, value); 1971 } catch (final SQLException e) { 1972 handleException(e); 1973 } 1974 } 1975 1976 @Override 1977 public void updateShort(final int columnIndex, final short x) throws SQLException { 1978 try { 1979 resultSet.updateShort(columnIndex, x); 1980 } catch (final SQLException e) { 1981 handleException(e); 1982 } 1983 } 1984 1985 @Override 1986 public void updateShort(final String columnName, final short x) throws SQLException { 1987 try { 1988 resultSet.updateShort(columnName, x); 1989 } catch (final SQLException e) { 1990 handleException(e); 1991 } 1992 } 1993 1994 @Override 1995 public void updateSQLXML(final int columnIndex, final SQLXML value) throws SQLException { 1996 try { 1997 resultSet.updateSQLXML(columnIndex, value); 1998 } catch (final SQLException e) { 1999 handleException(e); 2000 } 2001 } 2002 2003 @Override 2004 public void updateSQLXML(final String columnLabel, final SQLXML value) throws SQLException { 2005 try { 2006 resultSet.updateSQLXML(columnLabel, value); 2007 } catch (final SQLException e) { 2008 handleException(e); 2009 } 2010 } 2011 2012 @Override 2013 public void updateString(final int columnIndex, final String x) throws SQLException { 2014 try { 2015 resultSet.updateString(columnIndex, x); 2016 } catch (final SQLException e) { 2017 handleException(e); 2018 } 2019 } 2020 2021 @Override 2022 public void updateString(final String columnName, final String x) throws SQLException { 2023 try { 2024 resultSet.updateString(columnName, x); 2025 } catch (final SQLException e) { 2026 handleException(e); 2027 } 2028 } 2029 2030 @Override 2031 public void updateTime(final int columnIndex, final Time x) throws SQLException { 2032 try { 2033 resultSet.updateTime(columnIndex, x); 2034 } catch (final SQLException e) { 2035 handleException(e); 2036 } 2037 } 2038 2039 @Override 2040 public void updateTime(final String columnName, final Time x) throws SQLException { 2041 try { 2042 resultSet.updateTime(columnName, x); 2043 } catch (final SQLException e) { 2044 handleException(e); 2045 } 2046 } 2047 2048 @Override 2049 public void updateTimestamp(final int columnIndex, final Timestamp x) throws SQLException { 2050 try { 2051 resultSet.updateTimestamp(columnIndex, x); 2052 } catch (final SQLException e) { 2053 handleException(e); 2054 } 2055 } 2056 2057 @Override 2058 public void updateTimestamp(final String columnName, final Timestamp x) throws SQLException { 2059 try { 2060 resultSet.updateTimestamp(columnName, x); 2061 } catch (final SQLException e) { 2062 handleException(e); 2063 } 2064 } 2065 2066 @Override 2067 public boolean wasNull() throws SQLException { 2068 try { 2069 return resultSet.wasNull(); 2070 } catch (final SQLException e) { 2071 handleException(e); 2072 return false; 2073 } 2074 } 2075}