1. 利用接口配置
配置接口的方式实现持久层
<!-- @declare: 配置dao层扫描器 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.silencer.web.dao" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>
接口配置
@Repository
public interface UserMapper extends BaseMapper<User> {}
2. 配置sqlSessionTemplate
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
@Repository
public class BaseServiceSession {
@Autowired
private SqlSessionTemplate sqlSessionTemplate;
public Result queryPage(int pageNo, int pageSize, String sql, String sqlCount, Object obj) {
RowBounds row = new RowBounds(pageNo, pageSize);
List<?> list = sqlSessionTemplate.selectList(sql, obj, row);
int count = sqlSessionTemplate.selectOne(sqlCount, obj);
return Result.success(new Page(list, count));
}
}
3. 继承SqlSessionDaoSupport类
@Repository
public class BaseService extends SqlSessionDaoSupport {
@Autowired
public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
super.setSqlSessionFactory(sqlSessionFactory);
}
public Result queryPage(int pageNo, int pageSize, String sql, String sqlCount, Object obj) {
RowBounds row = new RowBounds(pageNo, pageSize);
List<?> list = this.getSqlSession().selectList(sql, obj, row);
int count = this.getSqlSession().selectOne(sqlCount, obj);
return Result.success(new Page(list, count));
}
}
第三种方式用到的实际是第二种方式中的sqlSessionTemplate