Spring----HikariDataSource与JdbcTemplate

原创
2021/05/19 14:00
阅读数 793

数据源与连接池的理解

数据源:指数据的来源,比如mysql、postgresql数据库等。
连接池:它是一个池子,池子中存放多个线程(称之为"connection"),用户想连接数据源的时候,就会从池子中取一个"connection",用户使用完了这个"connection"之后,便会释放这个"connection","connection"重新回到池子中,供其它用户使用。
如果没有连接池,那么用户每次操作数据库的时候都会创建一个connection,如果并发数很大(假设10w),频繁的创建连接非常占用cpu与内存资源,同时会造成数据库连接过多报错(数据库的连接数是有限的)。
有连接池的时候,假设连接池的最大连接数是200,现在程序有10w个并发操作,这个时候10w个并发就会排队使用这200个连接来执行sql。这样连接池和数据库的连接限制在200以内,不会造成数据库连接过多错误。

HikariDataSource

HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setDriverClassName();
hikariConfig.setJdbcUrl();
hikariConfig.setUsername();
hikariConfig.setPassword();
HikariDataSource hikariDataSource = new HikariDataSource(hikariConfig);
boolean close = hikariDataSource.getConnction().isClosed();

JdbcTemplate

它是spring对原始jdbc封装后提供的一个操作数据库的工具类。我们可以利用它来完成数据库的增删改查操作。

手动连接数据源流程

1>前端传连接名、数据库服务器ip、端口、用户名、密码、数据库类型等参数。
2>后端去连接数据库,成功后保存连接名信息到数据库。缓存记录id与数据源的关系。
3>前端查询所有数据库列表,即"show databases",传记录id;后端根据记录id从缓存中获取数据源,然后执行sql查询。
4>前端查询某个数据库的所有表列表,即"show tables",传数据源记录id、数据库名;后端从数据库获取记录详情,换数据库名,重新获取数据库连接,并建立新的数据源,缓存名称为数据源名称+数据库名称的组合。
5>前端查询某个数据库的某张表的列名列表,传数据源记录id、数据库名、表名;后端根据记录id(数据源名称)+数据库名称从缓存中取出数据源,在执行业务sql。

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部