截止到发表此篇博客为止,mybatis-spring 1.3.0版本出现,版本比较高也比较新,所以还是选择一个相对比较稳定的但是又不是太过久远的版本1.2.5。通过查阅官方文档使用1.3.0版本之后mybatis.xml配置文件中的<settings>配置项和集成到Spring配置文件中,不过似乎 <typeAliases>配置还需要在mybatis.xml文件中进行配置,1.2.5版本不具备上面的特性。
下面的是快速整合的一种方式,但是这种方式在实际的开发过程中似乎用的不是很多,因为采用了注解的方式来进行映射,这样就失去了配置文件的灵活性,所以官方文档也不太建议使用,不过记录这样的方式也不是完全没有意义,是学习整合的第一例子,有助于深入的学习Sping和mybatis的整合。
Spring配置文件中配置,由于是入门所以配置越简单越好,配置如下
<!-- 配置mybatis SqlSessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 1.3.0 mybatis-spring 开始支持下面的参数 --> <!-- <property name="configuration"> <bean class="org.apache.ibatis.session.Configuration"> <property name="logImpl" value="LOG4J"/> <property name="mapUnderscoreToCamelCase" value="true"/> </bean> </property> --> </bean> <!-- 配置 Mapper 映射 --> <bean id="musicMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="org.lian.mapper.MusicMapper" /> <property name="sqlSessionFactory" ref="sqlSessionFactory" /> </bean> <bean id="musicService" class="org.lian.service.impl.MusicServiceImpl"> <property name="musicMapper" ref="musicMapper"/> </bean>
下面是配置Dao层的MapperInterface接口和Service层
public interface MusicMapper {
/**
*
* @description TODO
* @param id
* @return
* @return Music
*/
@Results(id = "musicResult", value = {
@Result(property = "id", column = "id", id = true),
@Result(property = "name", column = "name"),
@Result(property = "singer", column = "singer"),
@Result(property = "album", column = "album"),
@Result(property = "duration", column = "duration"),
@Result(property = "author", column = "author"),
@Result(property = "composer", column = "composer"),
@Result(property = "style", column = "style") })
@Select("select * from t_music where id= #{id}")
public Music getMusicById(@Param("id") String id);
/**
* id; name; singer;
*
* album; duration; author; composer;style
*/
}
public class MusicServiceImpl implements MusicService {
private MusicMapper musicMapper;
public MusicMapper getMusicMapper() {
return musicMapper;
}
public void setMusicMapper(MusicMapper musicMapper) {
this.musicMapper = musicMapper;
}
@Override
public String getMusicById(String id) {
Music music = this.musicMapper.getMusicById(id);
return GsonUtil.getInstance().convertToJson(music);
}
}