Spring中HikariDataSource与JdbcTemplate的区别
这篇文章给大家介绍Spring中HikariDataSource与JdbcTemplate的区别,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
成都创新互联专注于济宁网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供济宁营销型网站建设,济宁网站制作、济宁网页设计、济宁网站官网定制、成都微信小程序服务,打造济宁网络公司原创品牌,更为您提供济宁网站排名全网营销落地服务。
数据源与连接池的理解
数据源:指数据的来源,比如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。
关于Spring中HikariDataSource与JdbcTemplate的区别就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
当前名称:Spring中HikariDataSource与JdbcTemplate的区别
网页地址:http://cdiso.cn/article/ipccip.html