spring与mybatils的三种整合方法 - 13337159127/Note GitHub Wiki

第一种...使用@MapperScan注解? 采用MapperScannerConfigurer,它将会查找类路径下的映射器并自动将它们创建成MapperFactoryBean。 (bean class="org.mybatis.spring.mapper.MapperScannerConfigurer")。 DAO接口所在包名,Spring会自动查找其下的类 ,包下的类需要使用@MapperScan注解,否则容器注入会失败 (mapper namespace="com.hua.saf.dao.UserDao") :包名+映射接口的名字 (select id="getUser" parameterType="int" resultType="com.hua.saf.pojo.User"):id是唯一的(方法名) 接口中的方法名称要和对应的MyBatis映射文件中的语句的id值一样,因为生成的动态代理,会根据这个匹配相应的Sql语句执行。 第二种...采用接口org.apache.ibatis.session.SqlSession的实现类org.mybatis.spring.SqlSessionTemplate? mybatis中, sessionFactory可由SqlSessionFactoryBuilder.来创建。MyBatis-Spring 中,使用了SqlSessionFactoryBean来替代。SqlSessionFactoryBean有一个必须属性dataSource,另外其还有一个通用属性configLocation(用来指定mybatis的xml配置文件路径)。 在Dao类里面定义成员变量:private SqlSessionTemplate sqlSessionTemplate; 在方法体里面return返回,sqlSessionTemplate调用增删改查方法, return return sqlSessionTemplate.selectOne("namescape+id", 传入的参数类型(或者参数)); 第三种....采用抽象类org.mybatis.spring.support.SqlSessionDaoSupport提供SqlSession。? DAO 类继承了 SqlSessionDaoSupport 类,类继承:public class UserDao extends SqlSessionDaoSupport(){ } 调用增删改查的方法? return this.getSqlSession().selectOne("namescape+id", 参数或(参数类型)); 在类里面定义一个方法:(可以在配置文件配置) @Resource public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) { super.setSqlSessionFactory(sqlSessionFactory); } service类实现调用dao类。