Java Mailing List Archive

http://www.java2.5341.com/

Home » user-java.ibatis »

Way to use sql in mapper interface, without having to create a
 corresponding xml mapping file?

Rick

2010-05-12

Replies: Find Java Web Hosting

Author LoginPost Reply
Larry showed me his cool no xml config setup which I'd love to implement at some point.

For this current project using ibatis3 it's too late to refactor a real lot at this stage and we're using your typical sqlMapConfig file.  Overall we still prefer to code all of our sql in xml files, but I just recently decided to create some sql using the annotation-based approach in an interface mapper file.

The problem (?) is that even though all the sql is in this mapper interface, I seem to still have to declare a dummy corresponding mapping xml file just to declare the interface namespace (otherwise ibatis at runtime bitches about not being able to find the mapping.)  I looked over the ibatis3 pdf and under the annotation approach section for using Mappers it doesn't really mention that you need the corresponding mapping.xml file, so I'm probably just missing something stupid?

Shouldn't there be a way in the SqlMapConfig to declare "Use this interface mapper" ? Basically I was thinking in the mapper section of the config instead of having to use:

<mappers>
   <mapper resource="mapper-files/metadb/DataReleaseMapper.xml"/>

You could also include:

<mappers>
   <mapper class="com.foobar.mapper.DataReleaseMapper"/>

As it is now, I'm having to declare that silly DataReleaseMapper.xml which only ends up wrapping my interface Mapper.


<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper
        PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
        "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
   
     <mapper namespace="com.foo.dataselector.media.service.mapper.DataReleaseMapper">
    
</mapper>

My assumption is that I'm missing something obvious:)
©2008 java2.5341.com - Jax Systems, LLC, U.S.A.