首页新闻找找看学习计划

关于mybatis与spring整合的一些小细节

0
悬赏园豆:40 [已关闭问题] 关闭于 2014-03-21 16:59

使用mybatis,spring时,以前做东西的话感觉能运行就可以,有些地方就没注意,没去纠结,现在感觉要提升一下,所以拿出来,涉及源码的回答,就尽量说清楚(我暂时没去看源码)。

1.在spring文件中,指定configlocation的mybatis.xml文件路径问题,在web环境下为

WEB-INF/classes/mybatis.xml,在myelcipse测试的时候改成mybatis.xml,感觉有点繁琐,有没有自动获取路径的办法,根据当前文件的环境,我试用了classpath,没成功

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="WEB-INF/classes/mybatis.xml" ></property>
<property name="dataSource" ref="dataSource" />
</bean>

2.配置mybatis的时候,spring文件自动忽略mybatis.xml中environments标签内的元素,这是为什么呀,就算是为了在spring中配置数据源不冲突,那为什么不直接使用mybatis里面的呢?

<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/helper?useUnicode=true&amp;characterEncoding=UTF-8&amp;zeroDateTimeBehavior=convertToNull" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>

 

 

3.sqlsessiontemplet,这个类在mybatis里是没有的,在spring感觉是对sqlsessionFactory改写或者继承得到的,这个有什么作用?因为我看到有些配置中使用sqlsesiontemplet,去直接类似于sqlsession执行sql操作,这样的话为什么不直接去使用sqlsession?示例代码

public class UserDaoImpl implements  UserDao  {  
    public SqlSessionTemplate sqlSession;    
      public User getUserById(User user) {     
     return (User)sqlSession.selectOne("com.xxt.ibatis.dbcp.domain.User.getUser", user); 
     }  
    public void setSqlSession(SqlSessionTemplate sqlSession) {       
    this.sqlSession = sqlSession;      }  
  }  
江边流客的主页 江边流客 | 初学一级 | 园豆:5
提问于:2013-11-11 22:18
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册