spring全家桶(spring JDBC操作)

Spring 5.x的启示

  • Spring boot 和 Spring cloud出现时必然的。
  • 易用性,生态性良好,运维遍历,云趋势,最佳实践的整合。

Spring 与JDBC

spring boot 的配置

DataSourceAutoConfiguration --配置DataSource DataSourceTransactionManagerAutoConfiguration --配置DataSourceTransactionManager JDBCTemaplateAutoConfiguration --配置JDBCTemaplate

数据源相关配置

多数据源环境配置

数据源进行区分,避免错误,关注每次使用的数据源(有多个DataSource时系统如何判断,对应的设施事务,Orm,如何选择DataSource)

  • 配置方法
    1. 手工控制
    2. 与spring boot 协同控制
      • 配置@Primark类型的Bean
      • 排除Spring Boot 的自动配置
        (DataSourceAutoConfiguration,DataSourceTransactionAutoConfiguration,JdbcTemplateAutoConfiguration)

优秀的连接池

HikariCP

快速原因: 1. 字节码级别的优化(很多方法通过Java Assit生成) 2. 大量小改进 (使用FastStatementList代替ArrayList,无锁集合ConcurrengBag,代理类的优化) 使用: Spring Boot 2.X 默认使用HikariCp,配置spring.dataSource.hikari.*即可 Spring Boot 1.x 默认使用 Tomcat连接池,需要移除tomcat-jdbc依赖;spring.dataSource.type=com.zaxxer.hikari.HikariDataSource

常见配置

Druid

Drui连接池是Al开源的数据库连接池项目,为监控而生,内置强大的监控功能,监控不影响性能,能防止sql注入,内置Loggin能诊断Hack应用行为。

  • 实用功能 详细的监控 ExceptionSorter针对主流数据库的返回码都支持 SQL防注入 内置加密配置 众多扩展点,方便进行定制 网址:https://github.com.alibaba/druid

使用

  • 直接配置 DruidDataSource
  • 通过druid-spring-boot-starter
Druid Filter

用于定制连接池操作的各种环节 可以继承FilterEventAdapter以方便实现Filter 修改META-INF/druid-filter.properties增加Filter配置 排除引用默认的数据源的引用

如何选择连接池

可靠性,可扩展性,可运维性,性能,功能,其他等

Spring的JDBC操作类

spring-jdbc

  • core ,Jdbc Template 等相关的核心接口类
  • datasource,数据源相关的辅助类
  • object,将JDBC操作封装成对象
  • support,错误码及其他辅助工具
常用Bean注解

@Component @Repository @Service @Controller @RestController

JdbcTemplate

query queryForObject queryForList update execute

查询对象的映射

sql批处理 JDBCTemplate

  • batchUpdate - BatchPreparedStatementSetter NamedParameterJdbcTemplate
  • batchUpdate - SqlParameterSourceUtils.createBatch

转载于:https://my.oschina.net/u/3945595/blog/3067040

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值