InlineParameterMapParser maintains the character string without the necessity by using StringTokenizer. ---------------------------------------------------------------------------------------------------------
Key: IBATIS-549 URL: https://issues.apache.org/jira/browse/IBATIS-549 Project: iBatis for Java Issue Type: Wish Components: SQL Maps Reporter: Takahiro Kido Priority: Minor To maintain the property value, InlineParameterMapParser uses StringTokenizer. StringTokenizer#nextToken uses String#substring(int start, int end). String#substring(int start, int end) uses String(int start, int length, char[] data). ex) INSERT INTO TABLE_A(COL_1,COL_2,....COL_N) VALUES(#VALUE_1#,#VALUE_2#,....,#VALUE_N#); char[] data keeps "INSERT INTO TABLE_A(COL_1,COL_2,....COL_N) VALUES(#VALUE_1#,#VALUE_2#,....,#VALUE_N#)". "INSERT INTO TABLE_A(COL_1,COL_2,....COL_N) VALUES(" This character string need not be maintained. When String passed to StringTokenizer is made the character string since '#' of the first token, it is settled with less amount of the heap use. char[] data keeps "#VALUE_1#,#VALUE_2#,....,#VALUE_N#)". If the amount of the heap use is valued, you should make a new character string since '#' of the first token with StringBuilder or StringBuffer beforehand. Because a lot of heaps are consumed oppositely when it is tried to make a character string new in each token, this attempt is not suitable. The effect of reducing the amount of the heap use concerning select and insert statement can be chiefly expected. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.