1 21 22 package org.opensubsystems.patterns.listdata.persist.db; 23 24 import java.sql.Connection ; 25 import java.sql.PreparedStatement ; 26 import java.sql.SQLException ; 27 import java.sql.Statement ; 28 import java.util.ArrayList ; 29 import java.util.HashMap ; 30 import java.util.Iterator ; 31 import java.util.List ; 32 import java.util.Map ; 33 import java.util.logging.Logger ; 34 35 import javax.transaction.UserTransaction ; 36 37 import org.opensubsystems.core.data.DataObject; 38 import org.opensubsystems.core.error.OSSException; 39 import org.opensubsystems.core.persist.BasicDataFactory; 40 import org.opensubsystems.core.persist.DataFactoryManager; 41 import org.opensubsystems.core.persist.db.Database; 42 import org.opensubsystems.core.persist.db.DatabaseConnectionFactoryImpl; 43 import org.opensubsystems.core.persist.db.DatabaseFactoryImpl; 44 import org.opensubsystems.core.persist.db.DatabaseImpl; 45 import org.opensubsystems.core.persist.db.DatabaseSchemaManager; 46 import org.opensubsystems.core.persist.db.DatabaseUpdateOperation; 47 import org.opensubsystems.core.persist.db.ModifiableDatabaseSchema; 48 import org.opensubsystems.core.util.CallContext; 49 import org.opensubsystems.core.util.DatabaseUtils; 50 import org.opensubsystems.core.util.Log; 51 import org.opensubsystems.core.util.MyTimer; 52 import org.opensubsystems.core.util.NumberUtils; 53 import org.opensubsystems.patterns.listdata.data.ListDefinition; 54 import org.opensubsystems.patterns.listdata.data.ListOptions; 55 import org.opensubsystems.patterns.listdata.persist.ListFactory; 56 57 75 public abstract class ListDatabaseTestUtils 76 { 77 79 82 public static final String NO_PARENT = "NO_PARENT"; 83 84 86 90 protected Class m_clsListFactoryClass; 91 92 96 protected Class m_clsListDatabaseSchemaClass; 97 98 102 protected int[] m_arrAllColumnCodes; 103 104 109 protected int m_iColumnOneCode; 110 111 116 protected int m_iColumnTwoCode; 117 118 120 123 private static Logger s_logger = Log.getInstance(ListDatabaseTestUtils.class); 124 125 127 147 public ListDatabaseTestUtils( 148 Class clsListFactoryClass, 149 Class clsListDatabaseSchemaClass, 150 int[] arrAllColumnCodes, 151 int iColumnOneCode, 152 int iColumnTwoCode 153 ) 154 { 155 m_clsListFactoryClass = clsListFactoryClass; 156 m_clsListDatabaseSchemaClass = clsListDatabaseSchemaClass; 157 m_arrAllColumnCodes = arrAllColumnCodes; 158 m_iColumnOneCode = iColumnOneCode; 159 m_iColumnTwoCode = iColumnTwoCode; 160 } 161 162 164 166 187 protected abstract Object insertParent( 188 int iDomainId, 189 String str1, 190 String str2 191 ) throws Exception ; 192 193 204 protected abstract void deleteParent( 205 Object parent, 206 int iDomainId 207 ) throws Exception ; 208 209 224 protected abstract DataObject constructData( 225 Object parent, 226 int iDomainId, 227 String str1, 228 String str2 229 ) throws Exception ; 230 231 258 protected abstract void deleteData( 259 Object parent, 260 int iDomainId, 261 String strPrefix1, 262 String strPrefix2 263 ) throws Exception ; 264 265 273 public abstract String getColumnOneValue( 274 DataObject data 275 ); 276 277 285 public abstract String getColumnTwoValue( 286 DataObject data 287 ); 288 289 291 296 public final int[] getAllColumnCodes( 297 ) 298 { 299 return m_arrAllColumnCodes; 300 } 301 302 309 public final int getColumnOneCode( 310 ) 311 { 312 return m_iColumnOneCode; 313 } 314 315 322 public final int getColumnTwoCode( 323 ) 324 { 325 return m_iColumnTwoCode; 326 } 327 328 335 public final Class getListFactoryClass( 336 ) throws OSSException 337 { 338 return m_clsListFactoryClass; 339 } 340 341 348 public final ListFactory getListFactory( 349 ) throws OSSException 350 { 351 return (ListFactory)DataFactoryManager.getInstance(getListFactoryClass()); 352 } 353 354 360 public final Class getListDatabaseSchemaClass( 361 ) throws OSSException 362 { 363 return m_clsListDatabaseSchemaClass; 364 } 365 366 373 public final ListDatabaseSchema getListDatabaseSchema( 374 ) throws OSSException 375 { 376 return (ListDatabaseSchema)DatabaseSchemaManager.getInstance( 377 getListDatabaseSchemaClass()); 378 } 379 380 385 public String [] getExpectedResultListColumnOne() 386 { 387 return new String [] {"01_junit_test", "02_junit_test", "03_junit_test", 388 "04_junit_test", "05_junit_test", "06_junit_test", 389 "07_junit_test", "08_junit_test", "09_junit_test", 390 "10_junit_test", "11_junit_test", "12_junit_test", 391 "13_junit_test", "14_junit_test", "15_junit_test", 392 "16_junit_test", "17_junit_test", "18_junit_test", 393 "19_junit_test", "20_junit_test", "21_junit_test", 394 "22_junit_test", "23_junit_test", "24_junit_test", 395 "25_junit_test", 396 }; 397 } 398 399 404 public String [] getDefaultResultListColumnTwo() 405 { 406 return new String [] {"a", "b", "c", "d", "e", "f", "g", "h", "i", 407 "j", "k", "l", "m", "n", "o", "p", "q", "r", 408 "s", "t", "u", "v", "w", "x", "y", 409 }; 410 } 411 412 430 public final Object [] insertTestData( 431 UserTransaction transaction 432 ) throws Exception 433 { 434 Object parent = null; 435 DataObject data; 436 Map mapData = new HashMap (2); 437 List dataItems = new ArrayList (); 438 int iDomainId = CallContext.getInstance().getCurrentDomainId(); 439 440 transaction.begin(); 441 try 442 { 443 parent = insertParent(iDomainId, "1_parent_junit_test", "a"); 444 445 data = insertData(parent, iDomainId, "07_junit_test", "g"); 448 dataItems.add(data); 449 data = insertData(parent, iDomainId, "20_junit_test", "t"); 450 dataItems.add(data); 451 data = insertData(parent, iDomainId, "21_junit_test", "u"); 452 dataItems.add(data); 453 data = insertData(parent, iDomainId, "25_junit_test", "y"); 454 dataItems.add(data); 455 data = insertData(parent, iDomainId, "08_junit_test", "h"); 456 dataItems.add(data); 457 data = insertData(parent, iDomainId, "04_junit_test", "d"); 458 dataItems.add(data); 459 data = insertData(parent, iDomainId, "17_junit_test", "q"); 460 dataItems.add(data); 461 data = insertData(parent, iDomainId, "11_junit_test", "k"); 462 dataItems.add(data); 463 data = insertData(parent, iDomainId, "12_junit_test", "l"); 464 dataItems.add(data); 465 data = insertData(parent, iDomainId, "13_junit_test", "m"); 466 dataItems.add(data); 467 data = insertData(parent, iDomainId, "09_junit_test", "i"); 468 dataItems.add(data); 469 data = insertData(parent, iDomainId, "10_junit_test", "j"); 470 dataItems.add(data); 471 data = insertData(parent, iDomainId, "14_junit_test", "n"); 472 dataItems.add(data); 473 data = insertData(parent, iDomainId, "18_junit_test", "r"); 474 dataItems.add(data); 475 data = insertData(parent, iDomainId, "19_junit_test", "s"); 476 dataItems.add(data); 477 data = insertData(parent, iDomainId, "05_junit_test", "e"); 478 dataItems.add(data); 479 data = insertData(parent, iDomainId, "24_junit_test", "x"); 480 dataItems.add(data); 481 data = insertData(parent, iDomainId, "15_junit_test", "o"); 482 dataItems.add(data); 483 data = insertData(parent, iDomainId, "02_junit_test", "b"); 484 dataItems.add(data); 485 data = insertData(parent, iDomainId, "01_junit_test", "a"); 486 dataItems.add(data); 487 data = insertData(parent, iDomainId, "03_junit_test", "c"); 488 dataItems.add(data); 489 data = insertData(parent, iDomainId, "06_junit_test", "f"); 490 dataItems.add(data); 491 data = insertData(parent, iDomainId, "22_junit_test", "v"); 492 dataItems.add(data); 493 data = insertData(parent, iDomainId, "23_junit_test", "w"); 494 dataItems.add(data); 495 data = insertData(parent, iDomainId, "16_junit_test", "p"); 496 dataItems.add(data); 497 498 if (parent != null) 499 { 500 Object parent2; 501 502 mapData.put(parent, dataItems); 503 dataItems = new ArrayList (); 504 505 parent2 = insertParent(iDomainId, "2_parent_junit_test", "b"); 508 509 data = insertData(parent2, iDomainId, "01_2_junit_test", "a"); 510 dataItems.add(data); 511 data = insertData(parent2, iDomainId, "02_2_junit_test", "b"); 512 dataItems.add(data); 513 data = insertData(parent2, iDomainId, "03_2_junit_test", "c"); 514 dataItems.add(data); 515 data = insertData(parent2, iDomainId, "04_2_junit_test", "d"); 516 dataItems.add(data); 517 data = insertData(parent2, iDomainId, "05_2_junit_test", "e"); 518 dataItems.add(data); 519 data = insertData(parent2, iDomainId, "06_2_junit_test", "f"); 520 dataItems.add(data); 521 data = insertData(parent2, iDomainId, "07_2_junit_test", "g"); 522 dataItems.add(data); 523 data = insertData(parent2, iDomainId, "08_2_junit_test", "h"); 524 dataItems.add(data); 525 data = insertData(parent2, iDomainId, "09_2_junit_test", "i"); 526 dataItems.add(data); 527 data = insertData(parent2, iDomainId, "10_2_junit_test", "j"); 528 dataItems.add(data); 529 data = insertData(parent2, iDomainId, "11_2_junit_test", "k"); 530 dataItems.add(data); 531 data = insertData(parent2, iDomainId, "12_2_junit_test", "l"); 532 dataItems.add(data); 533 data = insertData(parent2, iDomainId, "13_2_junit_test", "m"); 534 dataItems.add(data); 535 data = insertData(parent2, iDomainId, "14_2_junit_test", "n"); 536 dataItems.add(data); 537 data = insertData(parent2, iDomainId, "15_2_junit_test", "o"); 538 dataItems.add(data); 539 data = insertData(parent2, iDomainId, "16_2_junit_test", "p"); 540 dataItems.add(data); 541 data = insertData(parent2, iDomainId, "17_2_junit_test", "q"); 542 dataItems.add(data); 543 data = insertData(parent2, iDomainId, "18_2_junit_test", "r"); 544 dataItems.add(data); 545 data = insertData(parent2, iDomainId, "19_2_junit_test", "s"); 546 dataItems.add(data); 547 data = insertData(parent2, iDomainId, "20_2_junit_test", "t"); 548 dataItems.add(data); 549 data = insertData(parent2, iDomainId, "21_2_junit_test", "u"); 550 dataItems.add(data); 551 data = insertData(parent2, iDomainId, "22_2_junit_test", "v"); 552 dataItems.add(data); 553 data = insertData(parent2, iDomainId, "23_2_junit_test", "w"); 554 dataItems.add(data); 555 data = insertData(parent2, iDomainId, "24_2_junit_test", "x"); 556 dataItems.add(data); 557 data = insertData(parent2, iDomainId, "25_2_junit_test", "y"); 558 dataItems.add(data); 559 560 mapData.put(parent2, dataItems); 561 } 562 else 563 { 564 mapData.put(NO_PARENT, dataItems); 565 } 566 567 transaction.commit(); 568 } 569 catch (Throwable thr) 570 { 571 transaction.rollback(); 572 throw new Exception (thr); 573 } 574 575 return new Object [] {parent, mapData}; 576 } 577 578 588 public final void deleteTestData( 589 UserTransaction transaction, 590 Object [] insertedData 591 ) throws Exception 592 { 593 int iDomainId = CallContext.getInstance().getCurrentDomainId(); 594 595 transaction.begin(); 596 try 597 { 598 Map mapData = (Map )insertedData[1]; 599 Map.Entry item; 600 601 for (Iterator items = mapData.entrySet().iterator(); items.hasNext();) 602 { 603 item = (Map.Entry )items.next(); 604 deleteDataObjects((List )item.getValue(), iDomainId); 606 if (!NO_PARENT.equals(item.getKey())) 607 { 608 deleteParent(item.getKey(), iDomainId); 609 } 610 } 611 transaction.commit(); 612 } 613 catch (Throwable thr) 614 { 615 transaction.rollback(); 616 throw new Exception (thr); 617 } 618 } 619 620 641 public final Object [] insertLoadTestData( 642 UserTransaction transaction, 643 int iLoadTestListSize 644 ) throws Exception 645 { 646 return insertLoadTestData(transaction, iLoadTestListSize, 647 CallContext.getInstance().getCurrentDomainId(), 648 0, false); 649 } 650 651 660 public final void deleteLoadTestData( 661 UserTransaction transaction, 662 Object [] insertedData 663 ) throws Exception 664 { 665 deleteLoadTestData(transaction, insertedData, 666 CallContext.getInstance().getCurrentDomainId()); 667 } 668 669 678 public final void analyzeDatabase( 679 ) throws Exception 680 { 681 String [] arrQueryAnalyze = null; 682 683 Object [] arrResults = null; 684 ListDatabaseSchema schema = getListDatabaseSchema(); 685 686 if (schema instanceof ModifiableDatabaseSchema) 687 { 688 Map mapTables; 689 690 mapTables = ((ModifiableDatabaseSchema)schema).getModifiableTableNames(); 691 arrResults = DatabaseImpl.getInstance().getSQLAnalyzeFunctionCall( 692 mapTables); 693 } 694 695 if (arrResults != null) 698 { 699 Connection dbConnection = null; 700 Statement statement = null; 701 int iIndex = 0; 702 boolean bAutoCommit = false; 703 704 arrQueryAnalyze = (String [])arrResults[0]; 705 bAutoCommit = ((Boolean )arrResults[1]).booleanValue(); 706 try 707 { 708 dbConnection = DatabaseConnectionFactoryImpl.getInstance() 709 .requestConnection(bAutoCommit); 710 try 711 { 712 statement = dbConnection.createStatement(); 713 for (iIndex = 0; iIndex < arrQueryAnalyze.length; iIndex++) 714 { 715 statement.executeUpdate(arrQueryAnalyze[iIndex]); 716 } 717 } 718 finally 719 { 720 DatabaseUtils.closeStatement(statement); 721 } 722 723 } 726 catch (Throwable thr) 727 { 728 throw new Exception (thr); 729 } 730 finally 731 { 732 DatabaseConnectionFactoryImpl.getInstance().returnConnection( 733 dbConnection); 734 } 735 } 736 } 737 738 748 public ListOptions getDefaultListOptions( 749 Object parent 750 ) throws OSSException 751 { 752 ListOptions options = new ListOptions(getListFactoryClass()); 753 ListDefinition defaultListFilter = getListFactory().getDefaultListDefinition(); 754 755 defaultListFilter.setOrdering(new int[] {getColumnOneCode()}, 758 ListDefinition.ORDER_ASCENDING_ARRAY); 759 760 options.setDefinitionId(DataObject.NEW_ID_STR); 761 options.setDefinition(defaultListFilter); 762 options.setPageSize(defaultListFilter.getPageSize()); 763 options.setOrdering(defaultListFilter.getOrderColumnCodes(), 764 defaultListFilter.getOrderDirections()); 765 options.setShowColumnCodes(DatabaseUtils.mergeColumnsSafely( 769 defaultListFilter.getShowColumnCodes(), 770 new int[] {getColumnOneCode(), getColumnTwoCode()})); 771 options.setRetrieveColumnCodes(null); 774 options.setDomainId(CallContext.getInstance().getCurrentDomainId()); 775 776 return options; 777 } 778 779 784 public void printDebug( 785 ListOptions options 786 ) 787 { 788 System.out.println("List size" + options.getActualListSize() + 789 " Begin position: " + options.getBeginPosition() + 790 " End position: " + options.getEndPosition() + 791 " Actual page: " + options.getActualPage()); 792 } 793 794 799 public void printDebug( 800 List dataList 801 ) 802 { 803 DataObject data; 804 Iterator items; 805 int iIndex; 806 for (items = dataList.iterator(), iIndex = 0; items.hasNext(); iIndex++) 807 { 808 data = (DataObject)items.next(); 809 System.out.println("Index" + iIndex + 810 " 1: " + getColumnOneValue(data) + 811 " 2: " + getColumnTwoValue(data)); 812 } 813 } 814 815 817 832 protected DataObject insertData( 833 Object parent, 834 int iDomainId, 835 String str1, 836 String str2 837 ) throws Exception 838 { 839 DataObject data = null; 840 841 data = constructData(parent, iDomainId, str1, str2); 842 data = createDataObject(data); 843 return data; 844 } 845 846 866 protected List insertMultipleData( 867 Object parent, 868 int iDomainId, 869 int iCount, 870 int iStartNumber, 871 boolean bAditionalData 872 ) throws Exception 873 { 874 List lstReturn = new ArrayList (2); 875 List lstDataObjects = new ArrayList (); 876 int iIndex; 877 int iOuterIndex; 878 int iOuterIndexCount = 0; 879 int iEndIndex = Database.BATCH_ITERATOR; 880 int iActualCount = iStartNumber + 1; 881 MyTimer timer = new MyTimer(); 882 boolean isNotFullListForLastCycle = false; 883 long timeDuration = 0; 884 int iItemsPerSecons = 0; 885 DataObject data = null; 886 int iDigitCount = 8; 887 String strColumnOnePrefix = "test_1_"; 888 String strColumnTwoPrefix = "test_2_"; 889 890 lstReturn.add(strColumnOnePrefix); 891 lstReturn.add(strColumnTwoPrefix); 892 if (iCount % Database.BATCH_ITERATOR > 0) 893 { 894 iOuterIndexCount = (iCount / Database.BATCH_ITERATOR) + 1; 895 isNotFullListForLastCycle = true; 896 } 897 else 898 { 899 iOuterIndexCount = (iCount / Database.BATCH_ITERATOR); 900 } 901 902 timer.reset(); 903 904 if (bAditionalData) 905 { 906 iDigitCount = 9; 907 } 908 909 for (iOuterIndex = 1; iOuterIndex <= iOuterIndexCount; iOuterIndex++) 910 { 911 if ((iOuterIndex == iOuterIndexCount) && (isNotFullListForLastCycle)) 913 { 914 iEndIndex = iCount % Database.BATCH_ITERATOR; 915 } 916 917 lstDataObjects.clear(); 918 for (iIndex = 1; iIndex <= iEndIndex; iIndex++) 919 { 920 data = constructData(parent, iDomainId, 921 strColumnOnePrefix 922 + NumberUtils.getDigitNumberString(iActualCount, 923 iDigitCount), 924 strColumnTwoPrefix 925 + NumberUtils.getDigitNumberString(iActualCount, 926 iDigitCount)); 927 lstDataObjects.add(data); 928 iActualCount++; 929 } 930 931 createDataObjects(lstDataObjects); 932 } 933 934 timer.stop(); 935 timeDuration = timer.getDuration(); 936 if (timeDuration > 0) 937 { 938 iItemsPerSecons = (int)(((iCount * 1000)) / timeDuration); 939 } 940 s_logger.info("Total duration to create " + iCount + 941 " data objects was " + timer.toString() + " which is " + 942 (iItemsPerSecons > 0 ? Integer.toString(iItemsPerSecons) 943 : "undefined") 944 + " items/sec"); 945 return lstReturn; 946 } 947 948 974 protected final Object [] insertLoadTestData( 975 UserTransaction transaction, 976 int iLoadTestListSize, 977 int iDomainId, 978 int iStartNumber, 979 boolean bAditionalData 980 ) throws Exception 981 { 982 Object parent = null; 983 Map mapLoadTestData; 984 985 if (transaction != null) 986 { 987 transaction.begin(); 988 } 989 try 990 { 991 List data; 992 993 mapLoadTestData = new HashMap (); 996 997 parent = insertParent(iDomainId, "1_parent_junit_test", "a"); 998 data = insertMultipleData(parent, iDomainId, iLoadTestListSize, 999 iStartNumber, bAditionalData); 1000 1001 if (parent != null) 1002 { 1003 Object parent1 = null; 1004 1005 mapLoadTestData.put(parent, data); 1006 parent1 = insertParent(iDomainId, "2_parent_junit_test", "b"); 1011 data = insertMultipleData(parent1, iDomainId, iLoadTestListSize, 1012 iStartNumber, bAditionalData); 1013 mapLoadTestData.put(parent1, data); 1014 } 1015 else 1016 { 1017 mapLoadTestData.put(NO_PARENT, data); 1018 } 1019 if (transaction != null) 1020 { 1021 transaction.commit(); 1022 } 1023 } 1024 catch (Throwable thr) 1025 { 1026 if (transaction != null) 1027 { 1028 transaction.rollback(); 1029 } 1030 throw new Exception (thr); 1031 } 1032 1033 if (transaction != null) 1034 { 1035 analyzeDatabase(); 1041 } 1042 1043 return new Object [] {parent, mapLoadTestData}; 1044 } 1045 1046 1058 protected final void deleteLoadTestData( 1059 UserTransaction transaction, 1060 Object [] insertedData, 1061 int iDomainId 1062 ) throws Exception 1063 { 1064 if (transaction != null) 1065 { 1066 transaction.begin(); 1067 } 1068 try 1069 { 1070 Map mapData = (Map )insertedData[1]; 1071 Map.Entry item; 1072 Object objParent; 1073 List lstPrefixes; 1074 1075 for (Iterator items = mapData.entrySet().iterator(); items.hasNext();) 1076 { 1077 item = (Map.Entry )items.next(); 1078 objParent = item.getKey(); 1079 lstPrefixes = (List )item.getValue(); 1080 1081 deleteData(objParent, iDomainId, 1083 (String )lstPrefixes.get(0), 1086 (String )lstPrefixes.get(1)); 1087 if (!NO_PARENT.equals(objParent)) 1088 { 1089 deleteParent(objParent, iDomainId); 1090 } 1091 } 1092 if (transaction != null) 1093 { 1094 transaction.commit(); 1095 } 1096 } 1097 catch (Throwable thr) 1098 { 1099 if (transaction != null) 1100 { 1101 transaction.rollback(); 1102 } 1103 throw new Exception (thr); 1104 } 1105 1106 if (transaction != null) 1107 { 1108 analyzeDatabase(); 1114 } 1115 } 1116 1117 1125 protected DataObject createDataObject( 1126 DataObject data 1127 ) throws OSSException 1128 { 1129 return ((BasicDataFactory)getListFactory()).create(data); 1130 } 1131 1132 1142 protected void deleteDataObject( 1143 DataObject data, 1144 int iDomainId 1145 ) throws OSSException 1146 { 1147 if (data != null) 1148 { 1149 ((BasicDataFactory)getListFactory()).delete(data.getId(), iDomainId); 1150 } 1151 } 1152 1153 1161 protected void createDataObjects( 1162 List lstDataObjects 1163 ) throws OSSException 1164 { 1165 ((BasicDataFactory)getListFactory()).create(lstDataObjects); 1166 } 1167 1168 1178 protected void deleteDataObjects( 1179 List lstDataObjects, 1180 int iDomainId 1181 ) throws OSSException 1182 { 1183 if (lstDataObjects != null) 1184 { 1185 DataObject data; 1186 for (Iterator items = lstDataObjects.iterator(); items.hasNext();) 1187 { 1188 data = (DataObject)items.next(); 1189 deleteDataObject(data, iDomainId); 1190 } 1191 } 1192 } 1193 1194 1232 protected void deleteData( 1233 Object parent, 1234 final int iDomainId, 1235 final String strPrefix1, 1236 final String strPrefix2, 1237 String strDeleteByListTestPrefixesQuery, 1238 final boolean bSubstitueValues 1239 ) throws Exception 1240 { 1241 DatabaseUpdateOperation dbop = new DatabaseUpdateOperation( 1242 (DatabaseFactoryImpl)getListFactory(), 1243 strDeleteByListTestPrefixesQuery, 1244 (ModifiableDatabaseSchema)getListDatabaseSchema(), 1245 DatabaseUpdateOperation.DBOP_DELETE, null) 1246 { 1247 protected void performOperation( 1248 DatabaseFactoryImpl dbfactory, 1249 Connection cntConnection, 1250 PreparedStatement pstmQuery 1251 ) throws OSSException, 1252 SQLException 1253 { 1254 final int iUpdated; 1255 if (bSubstitueValues) 1256 { 1257 int iIndex = 1; 1258 1259 if (m_dbschema.isInDomain()) 1260 { 1261 pstmQuery.setInt(iIndex++, iDomainId); 1262 } 1263 pstmQuery.setString(iIndex++, strPrefix1); 1264 pstmQuery.setString(iIndex++, strPrefix2); 1265 } 1266 iUpdated = pstmQuery.executeUpdate(); 1267 setReturnData(new Integer (iUpdated)); 1269 } 1270 }; 1271 dbop.executeUpdate(); 1272 } 1273} 1274 | Popular Tags |