ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Prashanth Sukumaran <prashanthsukuma...@yahoo.com>
Subject Re: Strange Problem..
Date Thu, 25 Aug 2005 19:48:15 GMT
Hi Larry,

I have the same thing

<transactionManager type="JDBC"> But my commit work without commitRequired="true". 
Isn't this 
default.

Has this changed in the newer version of IBatis.  Eduardo, I hope you are check the database
you
are writing to.

Rgds

Prashanth.

--- Larry Meadors <larry.meadors@gmail.com> wrote:

> <transactionManager type="JDBC" commitRequired="true">
> 
> On 8/25/05, Eduardo Lobo <elobo@inet.co.cr> wrote:
> >  
> >  Thanks for the answer,
> >  
> >  This is the SQL config that I'm using:
> >  
> >  <?xml version="1.0" encoding="UTF-8"?>
> >  <!DOCTYPE sqlMapConfig
> >      PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
> >      "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
> >  
> >  <sqlMapConfig>
> >      
> >      <settings
> >          cacheModelsEnabled="false"
> >          enhancementEnabled="true"
> >          lazyLoadingEnabled="true"
> >          maxRequests="32"
> >          maxSessions="10"
> >          maxTransactions="5"
> >          useStatementNamespaces="false"/>
> >      
> >      <transactionManager type="JDBC" commitRequired="true" >
> >          <dataSource type="SIMPLE">
> >              <property name="JDBC.Driver"
> > value="net.sourceforge.jtds.jdbc.Driver"/>
> >              <property name="JDBC.ConnectionURL"
> > value="jdbc:jtds:sqlserver://192.168.1.20:1433/Database"/>
> >              <property name="JDBC.Username" value="user"/>
> >              <property name="JDBC.Password" value="*****"/>
> >              <property name="JDBC.DefaultAutoCommit" value="true"/>
> >          </dataSource>
> >      </transactionManager>
> >      
> >      <sqlMap resource="Person.xml"/>
> >      
> >  </sqlMapConfig>
> >  
> >  Could you tell me, please, what I need to change to make this work?
> > 
> >  
> >  
> >  Larry Meadors wrote: 
> >  The transaction's being rolled back, it looks like.
> > 
> > Change your transaction manager to commitRequired="true" and i think
> > it will work.
> > 
> > On a related note..you do know that you can do all of that without a
> > stored proc, right?
> > 
> > <insert ...>
> >  insert Person (Name) values (#name#)
> >  <selectKey property="id">
> >  select SCOPE_IDENTITY()
> >  </selectKey>
> > </insert>
> > 
> > Insert the record, set the id property to the generated key. Done. :-)
> > 
> > Larry
> > 
> > 
> > On 8/25/05, Eduardo Lobo <elobo@inet.co.cr> wrote:
> >  
> >  
> >  Hi,
> > 
> > My problem is this:
> > 
> > I create this SP(in SQL Server 2000):
> > 
> > create procedure create_person
> > @name varchar(80)
> > as
> > begin
> >  declare @id int
> > 
> >  insert Person (Name)
> >  values (@name)
> > 
> >  Set @id = SCOPE_IDENTITY()
> > 
> >  select Id, Name
> >  from Person
> >  where Id = @id
> > end
> > GO
> > 
> > 
> > This is the XML Map:
> > 
> > <?xml version="1.0" encoding="UTF-8" ?>
> > <!DOCTYPE sqlMap
> >  PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
> >  "http://www.ibatis.com/dtd/sql-map-2.dtd">
> > 
> > <sqlMap namespace="Person">
> > 
> >  <!-- ///////////////Type Aliases/////////////// -->
> >  <typeAlias alias="Map" type="java.util.Map"/>
> >  <typeAlias alias="Person" type="Person"/>
> >  <!-- ///////////////Type Aliases/////////////// -->
> > 
> >  <!-- ///////////////Result Maps/////////////// -->
> >  <resultMap id="Person_Result" class="Person">
> >  <result property="id" column="Id"/>
> >  <result property="name" column="Name"/>
> >  </resultMap>
> >  <!-- ///////////////Result Maps/////////////// -->
> > 
> >  <!-- ///////////////Procedues/////////////// -->
> >  <procedure id="create_person" resultMap="Person_Result"
> > parameterClass="Map">
> >  {call create_person (#name#)}
> >  </procedure>
> >  <!-- ///////////////Procedues/////////////// -->
> > 
> > </sqlMap>
> > 
> > 
> > This is the java code:
> > 
> > SqlMapClient sqlMap = null;
> >  try {
> >  String file = "SQLConfigMap.xml";
> >  Reader reader = Resources.getResourceAsReader(file);
> >  sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
> > 
> >  HashMap params = new HashMap();
> >  params.put("name", "David");
> >  Object obj = sqlMap.queryForObject("create_person", params);
> >  System.out.println("create_person: " + obj);
> > 
> >  } catch (Exception e) {
> >  System.out.println(e.getMessage());
> >  }
> > 
> > 
> > Results:
> > 
> > Finally when I print the result I got the new Record info,
> > 
> > Person: id = 1, name = David
> > 
> > That's fine, but when I check the Table there's not record...
> > 
> > But the strange is that it returns the mapped object with the new data,
> > like if it was successfully inserted.
> > 
> > The "Id" field from the table Person is Identity (automatic sequential),
> > and if I try to insert the record again then a I get the next "Id"
> > (Person: id = 2, name = David), but again nothing is in the table..
> > 
> > 
> > Thanks for the help.
> > 
> > Eduardo Lobo
> > 
> > 
> > 
> > 
> > 
> > 
> >  
> >  
> >  
> >
> 



		
____________________________________________________
Start your day with Yahoo! - make it your home page 
http://www.yahoo.com/r/hs 
 

Mime
View raw message