ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Clinton Begin <clinton.be...@gmail.com>
Subject Re: Closing connection when using JdbcDaoTemplate
Date Fri, 18 Feb 2005 19:35:09 GMT
Nope.  The framework will close it for you.


On Fri, 18 Feb 2005 17:36:31 -0000, Yee, Richard K, CTR,, DMDCWEST
<Richard.Yee.ctr@osd.pentagon.mil> wrote:
> When using the JdbcDaoTemplate, should I be closing the connection that I
> get from the DaoManager using the getConnection() method in a finally clause
> my dao methods?  I already plan to close any statements, result sets, etc.
> that I create.
> 
> Thanks,
> 
> Richard
> 
> -----Original Message-----
> From: Brandon Goodin [mailto:brandon.goodin@gmail.com]
> Sent: Friday, February 18, 2005 8:51 AM
> To: ibatis-user-java@incubator.apache.org
> Subject: Re: [ResultMap] Can't get primitive types to work
> 
> No problem Mike. These things are good to know. However, I'm still curious
> as to why it failed. If you ever figure it out. Please post it here and we
> could possibly add it to the wiki for future reference.
> 
> Branon
> 
> On Fri, 18 Feb 2005 11:48:09 -0500, Mike Zatko <mzatko@boscovs.com> wrote:
> > DB2 7 blows. I went and tried the same code on a workstation with a
> > DB2 8 client and it worked. Sorry for wasting your time.
> >
> > Brandon Goodin wrote:
> >
> > >what is the driver and database that you are using?
> > >
> > >
> > >On Fri, 18 Feb 2005 11:26:35 -0500, Mike Zatko <mzatko@boscovs.com>
> > >wrote:
> > >
> > >
> > >>2.0.9
> > >>
> > >>Brandon Goodin wrote:
> > >>
> > >>
> > >>
> > >>>what version of ibatis are you using?
> > >>>
> > >>>
> > >>>On Fri, 18 Feb 2005 11:16:23 -0500, Mike Zatko <mzatko@boscovs.com>
> > >>>wrote:
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>*I tried it and it does not work. My error is as follows:*
> > >>>>
> > >>>>ResultSetLogProxy.java|41|DEBUG|2005-02-18
> > >>>>11:13:16,756|3766|{rset-100020} ResultSet
> > >>>>PromotionFacadeSqlMapsImpl.java|71|ERROR|2005-02-18
> > >>>>11:13:16,772|3782|
> > >>>>--- The error occurred in configs/sqlmaps/promotions-sql.xml.
> > >>>>--- The error occurred while applying a result map.
> > >>>>--- Check the adjustment.getPromotionActionMap.
> > >>>>--- The error happened while setting a property on the result object.
> > >>>>--- Cause: com.ibatis.common.beans.ProbeException: Could not set
> > >>>>property 'numberOfItems' for
> > >>>>com.boscovs.commerce.promotion.dao.ActionDAO.  Cause:
> > >>>>java.lang.IllegalArgumentException
> > >>>>Caused by: java.lang.IllegalArgumentException
> > >>>>com.ibatis.common.jdbc.exception.NestedSQLException:
> > >>>>--- The error occurred in configs/sqlmaps/promotions-sql.xml.
> > >>>>--- The error occurred while applying a result map.
> > >>>>--- Check the adjustment.getPromotionActionMap.
> > >>>>--- The error happened while setting a property on the result object.
> > >>>>--- Cause: com.ibatis.common.beans.ProbeException: Could not set
> > >>>>property 'numberOfItems' for
> > >>>>com.boscovs.commerce.promotion.dao.ActionDAO.  Cause:
> > >>>>java.lang.IllegalArgumentException
> > >>>>Caused by: java.lang.IllegalArgumentException
> > >>>>Caused by: com.ibatis.common.beans.ProbeException: Could not set
> > >>>>property 'numberOfItems' for
> > >>>>com.boscovs.commerce.promotion.dao.ActionDAO.  Cause:
> > >>>>java.lang.IllegalArgumentException
> > >>>>Caused by: java.lang.IllegalArgumentException
> > >>>>   at
> >
> >>>>com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQuery
> WithCallback(GeneralStatement.java:183)
> > >>>>   at
> >
> >>>>com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQuery
> ForObject(GeneralStatement.java:99)
> > >>>>   at
> >
> >>>>com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlM
> apExecutorDelegate.java:561)
> > >>>>   at
> >
> >>>>com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlM
> apExecutorDelegate.java:536)
> > >>>>   at
> >
> >>>>com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSes
> sionImpl.java:97)
> > >>>>   at
> >
> >>>>com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClie
> ntImpl.java:69)
> > >>>>   at
> >
> >>>>com.boscovs.commerce.promotion.PromotionFacadeSqlMapsImpl.applyPromotion
> s(PromotionFacadeSqlMapsImpl.java:61)
> > >>>>   at test.PromotionTest.execute(PromotionTest.java:106)
> > >>>>   at test.PromotionTest.main(PromotionTest.java:171)
> > >>>>Caused by: com.ibatis.common.beans.ProbeException: Could not set
> > >>>>property 'numberOfItems' for
> > >>>>com.boscovs.commerce.promotion.dao.ActionDAO.  Cause:
> > >>>>java.lang.IllegalArgumentException
> > >>>>Caused by: java.lang.IllegalArgumentException
> > >>>>   at
> >
> >>>>com.ibatis.common.beans.JavaBeanProbe.setProperty(JavaBeanProbe.java:309
> )
> > >>>>   at
> >
> >>>>com.ibatis.common.beans.JavaBeanProbe.setObject(JavaBeanProbe.java:229)
> > >>>>   at
> com.ibatis.common.beans.GenericProbe.setObject(GenericProbe.java:73)
> > >>>>   at
> >
> >>>>com.ibatis.sqlmap.engine.accessplan.ComplexAccessPlan.setProperties(Comp
> lexAccessPlan.java:34)
> > >>>>   at
> >
> >>>>com.ibatis.sqlmap.engine.exchange.JavaBeanDataExchange.setData(JavaBeanD
> ataExchange.java:112)
> > >>>>   at
> >
> >>>>com.ibatis.sqlmap.engine.mapping.result.BasicResultMap.setResultObjectVa
> lues(BasicResultMap.java:296)
> > >>>>   at
> >
> >>>>com.ibatis.sqlmap.engine.mapping.statement.RowHandlerCallback.handleResu
> ltObject(RowHandlerCallback.java:60)
> > >>>>   at
> >
> >>>>com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor
> .java:355)
> > >>>>   at
> >
> >>>>com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.
> java:179)
> > >>>>   at
> >
> >>>>com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteQu
> ery(GeneralStatement.java:200)
> > >>>>   at
> >
> >>>>com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQuery
> WithCallback(GeneralStatement.java:168)
> > >>>>   ... 8 more
> > >>>>Caused by: java.lang.IllegalArgumentException
> > >>>>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > >>>>   at
> >
> >>>>sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
> a:39)
> > >>>>   at
> >
> >>>>sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
> Impl.java:25)
> > >>>>   at java.lang.reflect.Method.invoke(Method.java:585)
> > >>>>   at
> >
> >>>>com.ibatis.common.beans.JavaBeanProbe.setProperty(JavaBeanProbe.java:298
> )
> > >>>>   ... 18 more
> > >>>>
> > >>>>*Is it possible that its my database that is the problem? I am
> > >>>>using DB2
> > >>>>V7.2.*
> > >>>>
> > >>>>
> > >>>>Brandon Goodin wrote:
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>>I would recommend that you specify the jdbcType in your result.
> > >>>>>
> > >>>>><result property="numberOfItems" column="min_item_quantity"
> > >>>>>jdbcType="INTEGER" javaType="int"/>
> > >>>>>
> > >>>>>On Fri, 18 Feb 2005 06:55:01 -0800 (PST), Karen Koch
> > >>>>><kmkoch@sbcglobal.net> wrote:
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>>Are you perhaps missing the parameterClass arg on the statement
> > >>>>>>itself?
> > >>>>>>
> > >>>>>>--- Mike Zatko <mzatko@boscovs.com> wrote:
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>>/*I have a table as follows:*/
> > >>>>>>>
> > >>>>>>>sqltype               sqllen  sqlname.data
> sqlname.length
> > >>>>>>>--------------------  ------  ------------------------------
> > >>>>>>>--------------
> > >>>>>>>492   BIGINT               8
> > >>>>>>>PROMO_ACTION_ID                             15
> > >>>>>>>492   BIGINT               8
> > >>>>>>>PROMOTION_ID                                12
> > >>>>>>>452   CHARACTER            1
> > >>>>>>>ACTIONTYPE                                  10
> > >>>>>>>497   INTEGER              4
> > >>>>>>>MIN_ITEM_QUANTITY                           17
> > >>>>>>>485   DECIMAL          20, 5
> > >>>>>>>MIN_SINGLE_ITEM_VALUE                       21
> > >>>>>>>485   DECIMAL          20, 5
> > >>>>>>>MIN_TOTAL_ITEM_VALUE                        20
> > >>>>>>>485   DECIMAL          20, 5
> > >>>>>>>MIN_ORDER_VALUE                             15
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>/*I have the following ResultMap*/
> > >>>>>>>
> > >>>>>>>  <resultMap id="getPromotionActionMap"
> > >>>>>>>class="com.boscovs.commerce.promotion.dao.ActionDAO">
> > >>>>>>>      <result property="type" column="actiontype"
/>
> > >>>>>>>      <result property="numberOfItems"
> > >>>>>>>column="min_item_quantity" javaType="int"/>
> > >>>>>>>      <result property="individualItemValue"
> > >>>>>>>column="min_single_item_value" javaType="double"/>
> > >>>>>>>      <result property="totalItemValue"
> > >>>>>>>column="min_total_item_value" javaType="double"/>
> > >>>>>>>      <result property="totalValue" column="min_order_value"
> > >>>>>>>javaType="double"/>
> > >>>>>>>  </resultMap>
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>  <select id="getPromotionAction"
> resultMap="getPromotionActionMap">
> > >>>>>>>      <![CDATA[Select a.actiontype, a.min_item_quantity,
> > >>>>>>>          a.min_single_item_value,
> > >>>>>>>          a.min_total_item_value,
> > >>>>>>>          a.min_order_value
> > >>>>>>>          from DB2USR.PROMOTION as p, DB2USR.PROMO_ACTION
a
> > >>>>>>>          where p.promotion_id = a.promotion_id
> > >>>>>>>          and p.promotion_id = #value#
> > >>>>>>>          and p.status='A']]>
> > >>>>>>>  </select>
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>/*My bean is as follows*/
> > >>>>>>>
> > >>>>>>>public class ActionDAO {
> > >>>>>>>
> > >>>>>>>  public static enum Selected {
> > >>>>>>>      UNSELECTED, NO_ACTION, ADDS_X_ITEMS,
> > >>>>>>> TOTAL_ORDER_VALUE_AT_LEAST_X  }
> > >>>>>>>
> > >>>>>>>  private Selected selected = Selected.UNSELECTED; 
private
> > >>>>>>> XItems xItems;  private double totalValue;
> > >>>>>>>  private int numberOfItems;
> > >>>>>>>  private double individualItemValue;
> > >>>>>>>  private double totalItemValue;
> > >>>>>>>  private String type;
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>  /**
> > >>>>>>>   * @return
> > >>>>>>>   */
> > >>>>>>>  public Selected getSelected() {
> > >>>>>>>      return selected;
> > >>>>>>>  }
> > >>>>>>>
> > >>>>>>>  /**
> > >>>>>>>   * @return
> > >>>>>>>   */
> > >>>>>>>  public double getTotalValue() {
> > >>>>>>>      return totalValue;
> > >>>>>>>  }
> > >>>>>>>
> > >>>>>>>  /**
> > >>>>>>>   * @return
> > >>>>>>>   */
> > >>>>>>>  public XItems getXItems() {
> > >>>>>>>      return xItems;
> > >>>>>>>  }
> > >>>>>>>
> > >>>>>>>  /**
> > >>>>>>>   * @param i
> > >>>>>>>   */
> > >>>>>>>  public void setSelected(Selected i) {
> > >>>>>>>      selected = i;
> > >>>>>>>  }
> > >>>>>>>
> > >>>>>>>  /**
> > >>>>>>>   * @param d
> > >>>>>>>   */
> > >>>>>>>  public void setTotalValue(double d) {
> > >>>>>>>      totalValue = d;
> > >>>>>>>  }
> > >>>>>>>
> > >>>>>>>  /**
> > >>>>>>>   * @param items
> > >>>>>>>   */
> > >>>>>>>  public void setXItems(XItems items) {
> > >>>>>>>      xItems = items;
> > >>>>>>>  }
> > >>>>>>>
> > >>>>>>>  public void setType(String type) {
> > >>>>>>>      this.type = type;
> > >>>>>>>  }
> > >>>>>>>
> > >>>>>>>  public double getIndividualItemValue() {
> > >>>>>>>      return individualItemValue;
> > >>>>>>>  }
> > >>>>>>>  public void setIndividualItemValue(double individualItemValue)
{
> > >>>>>>>      this.individualItemValue = individualItemValue;
 }
> > >>>>>>>  public int getNumberOfItems() {
> > >>>>>>>      return numberOfItems;
> > >>>>>>>  }
> > >>>>>>>  public void setNumberOfItems(int numberOfItems) {
> > >>>>>>>      this.numberOfItems = numberOfItems;
> > >>>>>>>  }
> > >>>>>>>  public double getTotalItemValue() {
> > >>>>>>>      return totalItemValue;
> > >>>>>>>  }
> > >>>>>>>  public void setTotalItemValue(double totalItemValue)
{
> > >>>>>>>      this.totalItemValue = totalItemValue;
> > >>>>>>>  }
> > >>>>>>>  /**
> > >>>>>>>   * toString method: creates a String representation
of the object
> > >>>>>>>   * @return the String representation
> > >>>>>>>   * @author
> > >>>>>>>   */
> > >>>>>>>  public String toString() {
> > >>>>>>>      StringBuffer buffer = new StringBuffer();
> > >>>>>>>      buffer.append("ActionDAO[");
> > >>>>>>>      buffer.append("individualItemValue =
> ").append(individualItemValue);
> > >>>>>>>      buffer.append(", numberOfItems = ").append(numberOfItems);
> > >>>>>>>      buffer.append(", selected = ").append(selected);
> > >>>>>>>      buffer.append(", totalItemValue = ").append(totalItemValue);
> > >>>>>>>      buffer.append(", totalValue = ").append(totalValue);
> > >>>>>>>      buffer.append(", type = ").append(type);
> > >>>>>>>      buffer.append(", xItems = ").append(xItems);
> > >>>>>>>      buffer.append("]");
> > >>>>>>>      return buffer.toString();
> > >>>>>>>  }}
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>/*I get an IllegalArgumentException from all this query.
The
> developers
> > >>>>>>>guide infers that you can use primitives in your definitions.
Does
> it?
> > >>>>>>>Or am I doing something stupid and not realizing it?
BTW, it works
> if I
> > >>>>>>>use Wrapper classes, but I don't want to have to go
through all of
> my
> > >>>>>>>beans and covert them. Thanks for any help.*/
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>--
> > >>>>Michael H. Zatko
> > >>>>Java Enterprise Developer
> > >>>>Boscov's Information Services
> > >>>>Work: 610-929-7317
> > >>>>Home: 610-376-1624
> > >>>>Page: 610-736-4460
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>
> > >>>
> > >>>
> > >>--
> > >>Michael H. Zatko
> > >>Java Enterprise Developer
> > >>Boscov's Information Services
> > >>Work: 610-929-7317
> > >>Home: 610-376-1624
> > >>Page: 610-736-4460
> > >>
> > >>
> > >>
> > >>
> > >
> > >
> > >
> >
> > --
> > Michael H. Zatko
> > Java Enterprise Developer
> > Boscov's Information Services
> > Work: 610-929-7317
> > Home: 610-376-1624
> > Page: 610-736-4460
> >
> >
>

Mime
View raw message