配置Mapper
xml方式:
<!-- 采用自动扫描方式创建指定包下的单个mapper生成bean --> <bean id="roleMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="com.example.dao.RoleMapper"/> <property name="SqlSessionFactory" ref="SqlSessionFactory"></property> </bean> <!-- 采用自动扫描方式创建指定包下的多个mapper生成bean --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.example.dao" /> <property name="SqlSessionFactoryBeanName" value="SqlSessionFactory" /> <!-- 指定标注才扫描成为Mapper 所以mapper接口要加上@Repository--> <property name="annotationClass" value="org.springframework.stereotype.Repository" /> </bean>
config类配置:
/**
* 通过自动扫描,发现MyBatis mapper接口
* @return Mapper扫描器
*/
@Bean
public MapperScannerConfigurer initMapperScannerConfigurer() {
MapperScannerConfigurer msc=new MapperScannerConfigurer();
msc.setBasePackage("com.*");
msc.setSqlSessionFactoryBeanName("sqlSessionFactory");
msc.setAnnotationClass(Repository.class);
return msc;
}
Spring Boot里:
基于xml的使用,创建UserMapper接口
基于注解也可以,用的时候再说
//这个注解很好用,1.不用再在mybatis-config.xml里写xml映射文件2.直接就可以有相应的对象实例使用了
//同时如果有多个mapper一个个加@Mapper比较麻烦,可以在启动类上加上@MapperScan(basePackages = "com.example.demo.dao")扫描此包下的所有mapper @Mapper public interface UserMapper { User findUserByUsername(String username); void updateUserByUsername(User user); void deleteUserByUsername(String username); void saveUser(User user); List<User> getUserList(); }
111