<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</dependency>
[](https://gitee.com/vip204888/java-p7)yml
------------------------------------------------------------------
spring:
application:
name: spring-cloud-dynamic
datasource:
#类型
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/f2f?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password:
initial-size: 2
max-idle: 10
min-idle: 1
max-wait: 60000
max-active: 20 #最大空闲连接数
#多久进行一次检测,检测需要关闭的空闲连接
time-between-eviction-tuns-millis: 60000
[](https://gitee.com/vip204888/java-p7)MybatisConfig
----------------------------------------------------------------------------
/**
-
@author lanys
-
@Description:
-
@date 23/7/2021 下午8:38
*/
@Configuration
@EnableTransactionManagement
@PropertySource(value = “classpath:application.yml”, ignoreResourceNotFound = true)
public class MybatisConfig implements TransactionManagementConfigurer {
@Value("${mybatis.mapper-locations}")
private String mapper;
@Value("${mybatis.type-aliases-package}")
private String aliases;
@Autowired
private DataSource dataSource;
@Bean(name = "sqlSessionFactory")
public SqlSessionFactory sqlSessionFactory() throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
// 设置数据源
bean.setDataSource(dataSource);
// 设置xml
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(mapper));
// 设置别名
bean.setTypeAliasesPackage(aliases);
// 添加分页插件
bean.setPlugins(new Interceptor[]{pageInterceptor()});
bean.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);
return bean.getObject();
}
/**
* 分页拦截器
* @return
*/
private PageInterceptor pageInterceptor() {
PageInterceptor pageInterceptor = new PageInterceptor();
// 详见 com.github.pagehelper.page.PageParams
Properties p = new Properties();
// RowBounds是否进行count查询 - 默认不查询
p.setProperty("rowBoundsWithCount", "true");
// 当设置为true的时候,如果page size设置为0(或RowBounds的limit=0),就不执行分页,返回全部结果
p.setProperty("pageSizeZero", "true");
// 分页合理化
p.setProperty("reasonable", "false");
// 是否支持接口参数来传递分页参数,默认false
p.setProperty("supportMethodsArguments", "true");
// 设置数据库方言 , 也可以不设置,会动态获取
p.setProperty("helperDialect", "mysql");
pageInterceptor.setProperties(p);
return pageInterceptor;
}
@Override
public PlatformTransactionManager annotationDrivenTransactionManager() {
return new DataSourceTransactionManager(dataSource);
}
}
[](https://gitee.com/vip204888/java-p7)测试
-----------------------------------------------------------------
**自己的其中代码**
/**
* 关注列表
* @param userId
* @param page
* @param size
* @return
*/
@Override
public List<DynamicInfo> focusList(Long userId, Integer page, Integer size) {
总结
本文从基础到高级再到实战,由浅入深,把MySQL讲的清清楚楚,明明白白,这应该是我目前为止看到过最好的有关MySQL的学习笔记了,我相信如果你把这份笔记认真看完后,无论是工作中碰到的问题还是被面试官问到的问题都能迎刃而解!
重要的事:需要领取完整版的MySQL学习笔记的话,请转发+关注后点这里免费获取到免费的下载方式!
MySQL50道高频面试题整理:
总结
本文从基础到高级再到实战,由浅入深,把MySQL讲的清清楚楚,明明白白,这应该是我目前为止看到过最好的有关MySQL的学习笔记了,我相信如果你把这份笔记认真看完后,无论是工作中碰到的问题还是被面试官问到的问题都能迎刃而解!
重要的事:需要领取完整版的MySQL学习笔记的话,请转发+关注后点这里免费获取到免费的下载方式!
MySQL50道高频面试题整理: