[ http://issues.apache.org/jira/browse/IBATIS-78?page=history ]
     
Brandon Goodin resolved IBATIS-78:
----------------------------------

     Resolution: Fixed
    Fix Version: 2.1.0

added functionality to DBCP that uses the "Driver." notation to assign 
connection properties.
<property value="[propertyValue]" name="Driver.[propertyName]"/> 

> JDBC driver properties does not work when using DBCP
> ----------------------------------------------------
>
>          Key: IBATIS-78
>          URL: http://issues.apache.org/jira/browse/IBATIS-78
>      Project: iBatis for Java
>         Type: Bug
>   Components: SQL Maps
>     Versions: 2.0.9
>  Environment: Windows, Tomcat 5.0, Oracle 9i
>     Reporter: Sukhyung Lee
>     Assignee: Brandon Goodin
>      Fix For: 2.1.0

>
> I am using iBatis Sqlamp with Oracle and have Oracle type compare problem.
> Oracle CHAR type compare problem is :
> 1) User table has user_id = '111' 
> 2) user_id column type is CHAR(7)
> 3) When I set user_id = "111" and the select statement could NOT find the row.
> 4) When I set user_id = "111    " and the select statement could find the row.
> The java source code is here. 
> String user_id = "111";  // Search fail 
> //String user_id = "111    ";  // Search successful
> try
> {
>     User user = new User();
>     user.setUser_id(user_id);        
>     user = (User) sqlMap.queryForObject("getUser", user);
>     if (user == null)
>     {
>          System.out.print("Can not find User . user_id=" + user_id);
>     }
>     else
>     {
>          System.out.println("User Information:");
>          System.out.println("user_id=" + user.getUser_id());
>          System.out.println("user_name=" + user.getUser_name());
>     }
> }
> I set Driver.fixedString to true to solve Oracle CHAR type compare problem 
> like below. (Actually to solve this problem I need Custom Type Handler also)
> <transactionManager type="JDBC">
>              <dataSource type="SIMPLE">
>                            <property value="${driver}" name="JDBC.Driver"/>
>                            <property value="${url}" 
> name="JDBC.ConnectionURL"/>
>                            <property value="${username}" 
> name="JDBC.Username"/>
>                            <property value="${password}" 
> name="JDBC.Password"/>
>                            <property value="128" 
> name="Pool.MaximumActiveConnections"/>
>                            <property value="128" 
> name="Pool.MaximumIdleConnections"/>
>                            <property value="1000" name="Pool.MaximumWait"/>
>                            <!-- To resolve Oracle CHAR Type compare problem, 
> need fixedString=true-->
>                            <property value="true" name="Driver.fixedString"/>
>              </dataSource>
> </transactionManager>
> It worked fine and I and trying to use DBCP instead of SimpleDataSource and
> modified transactionMangager definition like below.
> <transactionManager type="JDBC">
>              <dataSource type="DBCP">
>                            <property value="${driver}" name="JDBC.Driver"/>
>                            <property value="${url}" 
> name="JDBC.ConnectionURL"/>
>                            <property value="${username}" 
> name="JDBC.Username"/>
>                            <property value="${password}" 
> name="JDBC.Password"/>
>                            <property value="15" 
> name="Pool.MaximumActiveConnections"/>
>                            <property value="1" 
> name="Pool.MaximumIdleConnections"/>
>                            <property value="5000" name="Pool.MaximumWait"/>
>                            <!-- To resolve Oracle CHAR Type compare problem, 
> need fixedString=true-->
>                            <property value="true" name="Driver.fixedString"/>
>                            <!-- DBCP Property -->
>                            <property value="select count(*) from dual" 
> name="Pool.ValidationQuery"/>
>                            <property value="true" name="Pool.LogAbandoned"/>
>                            <property value="false" 
> name="Pool.RemoveAbandoned"/>
>                            <property value="50000" 
> name="Pool.RemoveAbandonedTimeout"/>
>              </dataSource>
> </transactionManager>
> With above transactionManager definition, fixedString JDBC connection 
> property does not set to true and CHAR type compare problem occured again.
> Could you please help me to solve this problem?
> Regards,
> Sukhyung Lee
> Inzent Co., Ltd

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira

Reply via email to