这里分析一个多数据源导致分页插件分页异常解决
原先的分页插件:
com.github.fangjinuo.sqlhelper
更换:
com.github.pagehelper
在数据驱动配置类修改:
@Bean(name = "masterSqlSessionFactory")
@Primary
public SqlSessionFactory masterSqlSessionFactory(@Qualifier("masterDataSource") DataSource masterDataSource)
throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(masterDataSource);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources(MasterDataSourceConfig.MAPPER_LOCATION));
//分页插件
Interceptor interceptor = new PageInterceptor();
Properties properties = new Properties();
//数据库
properties.setProperty("helperDialect", "mysql");
//是否将参数offset作为PageNum使用
properties.setProperty("offsetAsPageNum", "true");
//是否进行count查询
properties.setProperty("rowBoundsWithCount", "true");
//是否分页合理化
properties.setProperty("reasonable", "false");
interceptor.setProperties(properties);
sessionFactory.setPlugins(new Interceptor[] {interceptor});
return sessionFactory.getObject();
}
Tuple 元组
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。元组中的元素类型也可以不相同
tuple = ( 'abc', 123 , 4.56, 'phor', 88.6) tinytuple = (876, 'hello') print(tuple) # 输出完整元组 print(tuple[0]) # 输出元组的第一个元素 print(tuple[1:3]) # 输出从第二个元素开始到第三个元素 print(tuple[2:]) # 输出从第三个元素开始的所有元素 print(tinytuple * 2) # 输出两次元组 print(tuple + tinytuple) # 连接元组
('abc', 123, 4.56, 'phor', 88.6) abc (123, 4.56) (4.56, 'phor', 88.6) (876, 'hello', 876, 'hello') ('abc', 123, 4.56, 'phor', 88.6, 876, 'hello')
元组同字符串类似,可以被索引且下标索引从0开始,-1 为从末尾开始的位置。也可以进行截取。 在理解上,可以把字符串看作一种特殊的元组。
- 1、与字符串一样,元组的元素不能修改。[但它可以包含可变的对象,比如list列表]
- 2、元组也可以被索引和切片,方法一样。
- 3、注意构造包含 0 或 1 个元素的元组的特殊语法规则。
- 4、元组也可以使用+操作符进行拼接。
构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:
tuple1 = () # 空元组 tuple2 = (20,) # 一个元素,需要在元素后添加逗号
string、list 和 tuple 都属于 sequence(序列)。