Druid

springboot整合Druid

孤街浪徒 提交于 2020-03-03 06:33:11
spring: datasource: driverClassName: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/learnmysql?serverTimezone=UTC&characterEncoding=utf8 username: root password: 123456 type: com.alibaba.druid.pool.DruidDataSource druid: initialSize: 5 minIdle: 5 maxActive: 20 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true maxPoolPreparedStatementPerConnectionSize: 20 filters: stat,wall connectionProperties: 'druid.stat.mergeSql=true;druid

SpringBoot-配置MyBatis-yml方式

别等时光非礼了梦想. 提交于 2020-03-02 18:45:54
Druid的数据源配置: https://www.cnblogs.com/KuroNJQ/p/11171263.html 1.导入依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.1</version> </dependency> 2.我有一个application-dev.yml和一个applicaion.yml 分别是: spring: datasource: url: jdbc:mysql://localhost:3306/wrist?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false username: root password: driver-class-name: com.mysql.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource druid: #初始化大小 initialSize: 5 #最小值 minIdle: 5 #最大值 maxActive: 20 #最大等待时间,配置获取连接等待超时,时间单位都是毫秒ms

Dubbo分布式环境搭建测试(依赖mybatis,spring,druid)

不羁的心 提交于 2020-03-02 18:22:45
此文档针对初学者。 废话不多说,先上源码: http://git.oschina.net/alexgaoyh/Dubbo-parent http://git.oschina.net/alexgaoyh/Dubbo-parent/attach_files Maven项目,只需要注意下图中红色箭头标注的三个模块即可; Dubbo-api: API接口,被 Dubbo-test-provider(服务提供者),Dubbo-test-consumer(服务消费者)依赖; Dubbo-api 模块没什么多说的,只是需要的interface接口和实体类……; Dubbo-test-consumer 模块同样没有什么多说的,讲服务提供者发布的接口依赖到项目中即可,注意 consumerAll.xml 即可。 Dubbo-test-provider: 服务提供者,Dubbo整合mybatis spring druid,实现事务控制,druid监控数据的log4j日志记录(sql输出); 下图中,需要注意两个单元测试的文件, DemoTest.java 文件是用来本地进行单元测试使用的,确保对外发布的服务接口都通过单元测试; DemoDubboTest.java 文件是直接对外发布dubbo服务接口的,相关的方法通过单元测试整合,即可对外发布接口,发布接口之后,服务消费者即可进行相关业务操作; PS

MyBatis和Druid查询属性LocalDateTime报错

时光毁灭记忆、已成空白 提交于 2020-03-02 01:24:13
问题 技术栈版本号: mybatis:3.5.1 druid:1.1.12 JDK:1.8 产生原因 对象的属性使用新的日期函数定义。JDK8之前的Date似乎被隔离了,JDK8新的时间日期API,开始一个新的纪元,谁用谁知道。 class AccountTbl { var id: Int? = null var userId: String? = null var money: Int? = null var tranDate: LocalDateTime? = null } 问题解决 程序跑出的异常为 SQLFeatureNotSupportedException ,异常是druid,90%应该是druid的问题。分析项目涉及ORM框架的版本号 druid1.1.12,mybatis3.5.1。 渐入渐出了下代码的执行流程。 ResultSetHandler 是Mybatis的核心组件,主要负责将结果集resultSets转化成结果列表(或cursor)和处理储存过程的输出。 DefaultResultSetHandler是Myabtis为ResultSetHandler提供的唯一一个实现类,最终的流程都会走到 getPropertyMappingValue ,进行实体属性和JavaBean属性的映射。 TypeHandler是MyBatis中的类型转换器

一直使用AtomicInteger?试一试FieldUpdater

我的梦境 提交于 2020-03-01 23:46:44
1. 背景 在进入正题之前,这里先提出一个问题,如何在多线程中去对一个数字进行+1操作?这个问题非常简单,哪怕是Java的初学者都能回答上来,使用AtomicXXX,比如有一个int类型的自加,那么你可以使用AtomicInteger 代替int类型进行自加。 AtomicInteger atomicInteger = new AtomicInteger(); atomicInteger.addAndGet(1); 如上面的代码所示,使用addAndGet即可保证多线程中相加,具体原理在底层使用的是CAS,这里就不展开细讲。基本上AtomicXXX能满足我们的所有需求,直到前几天一个群友(ID:皮摩)问了我一个问题,他发现在很多开源框架中,例如Netty中的AbstractReferenceCountedByteBuf 类中定义了一个refCntUpdater: private static final AtomicIntegerFieldUpdater<AbstractReferenceCountedByteBuf> refCntUpdater; static { AtomicIntegerFieldUpdater<AbstractReferenceCountedByteBuf> updater = PlatformDependent

定时任务查询数据时返回连接已关闭

﹥>﹥吖頭↗ 提交于 2020-03-01 20:29:02
如下打印的线程栈,原来的定时任务是由线程池形式定时执行,运行一段时间后就会报连接关闭。原来是直接线程访问数据库是没有交给spring的事务去接管的,猜测是连接没有及时释放,然后定时间隔大于异常检测间隔,下次继续用的时候已经被关闭了。 解决方案:定时任务修改为quartz定时任务,将数据库连接交给spring管理。 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.alibaba.druid.pool.DataSourceClosedException: dataSource already closed at Wed Oct 23 11:12:39 CST 2019 ### The error may exist in org/pml/nos/tunnel/mapper/XxxMapper.java

Spring Boot2.x 动态数据源配置

回眸只為那壹抹淺笑 提交于 2020-03-01 13:15:44
原文链接: Spring Boot2.x 动态数据源配置 基于 Spring Boot 2.x、Spring Data JPA、druid、mysql 的动态数据源配置Demo,适合用于数据库的读写分离等应用场景。通过在Service层方法上添加自定义注解实现读写不同的数据库。 配置文件已配置好druid监控相关属性,监控页面链接:ip:8080/druid。账号:admin,密码:123456。详情查看 application.yml 文件。 配置 pom.xml 文件 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.21</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <

wait millis 60009, active 50 ,maxactive 200 异常

﹥>﹥吖頭↗ 提交于 2020-03-01 07:37:03
2018年04月19日 16:48:46 先说明一下项目特点:业务需要,需要进行相当多的数据库查询和插入、更新操作。生产环境30万数据,本地为了开发方便,只准备了两万数据。 之前的开发过程中测试项目,启动项目后 执行sql操作正常,日志一直再打印hibernate的sql。过一段时间以后 ,就突然停止打印了,等待一段时间(就是wait millis 配置的大小)后,控制台日志打印这句话 。当时第一次遇到这个问题,检查发现在spring的application.xml中配置了数据源druid。里面的配置有这几个参数。当时maxactive 是 50。意思很明显,活动的连接数与最大连接数相同,连接用完了,在等待新的连接,却没有新连接可用,然后超时了。当时我没有意识到这点,只意识到数据库连接不够用,而且网上也有说连接不够用的,就把maxactive 调大,就没有出现这个问题了。 近日,在开发环境部署后,发现数据量太大,这个问题又出现了,maxactive 调的越大,这个问题出现的越晚,但是肯定会出现,说明问题没有根本解决。之后我就详细了解下druid的配置参数都是什么意思,又参考此文:https://www.cnblogs.com/netcorner/p/4380949.html 。 【 使用druid连接池的超时回收机制排查连接泄露问题  https://www.cnblogs.com

Spring Boot 2.x基础教程:使用国产数据库连接池Druid

一笑奈何 提交于 2020-02-28 07:11:01
上一节 ,我们介绍了Spring Boot在JDBC模块中自动化配置使用的默认数据源HikariCP。接下来这一节,我们将介绍另外一个被广泛应用的开源数据源:Druid。 Druid 是由阿里巴巴数据库事业部出品的开源项目。它除了是一个高性能数据库连接池之外,更是一个自带监控的数据库连接池。虽然HikariCP已经很优秀,但是对于国内用户来说,可能对于Druid更为熟悉。所以,对于如何在Spring Boot中使用Druid是后端开发人员必须要掌握的基本技能。 配置Druid数据源 这一节的实践我们将基于 《Spring Boot 2.x基础教程:使用JdbcTemplate访问MySQL数据库》 一文的代码基础上进行。所以,读者可以从文末的代码仓库中,检出 chapter3-1 目录来进行下面的实践学习。 下面我们就来开始对Spring Boot项目配置Druid数据源: 第一步 :在 pom.xml 中引入druid官方提供的Spring Boot Starter封装。 <dependency> <groupid>com.alibaba</groupid> <artifactid>druid-spring-boot-starter</artifactid> <version>1.1.21</version> </dependency> 第二步 :在 application

开源商城开发笔记4-配置MyBatis生成代码

£可爱£侵袭症+ 提交于 2020-02-28 06:55:36
本项目基于SpringBoot开发,引入的是mybatis-spring-boot 1、引入依赖,包括spring-boot,mybatis,druid,junit,log4j 2.配置MyBatis-Generator插件,使用Maven插件的方式生成代码 3.配置MyBatis 4.配置MyBatis-Generator 5.运行插件,生成代码 注: 本系列代码存放在码云上面,前后端全部开源,无使用限制。 源码地址:https://gitee.com/gintone/GTOpenShop.git 来源: oschina 链接: https://my.oschina.net/u/173975/blog/3175909