java线程中使用mysql连接查询数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java线程中使用mysql连接查询数据库相关的知识,希望对你有一定的参考价值。

在一个一直运行的类中,由于匹配到特定的任务就需要做特定的事,这个步骤我打算直接在当前类中创建一个线程new Thread().start();做操作,然后通过线程的构造函数把数据库连接对象jdbcTemplate传过去直接查数据库对结果做处理,这样做符号规范吗,或者有没有什么更好的方法

不建议这样做,一般不符合开发规范,如果这样的话,你想想在业务量多的情况下,多个线程如果不控制,数据库连接会将数据库服务器爆掉的,会影响业务的
常规做法:数据库连接池(durid了解一下),据某些统计哈,真正用来做查询的资源不超过整个查询数据库的生命周期的30%,大部分时间都用开创建连接关闭连接等操作,如果这个时候建立数据库连接池的话,可以有效的将这部分时间释放掉
参考技术A 这个不符合企业级开发规范,线程调起是个异步的过程,你根本不知道未来的结果会怎么样。
而且事务也不好控制,执行的结果可想而知。你可以使用接口的方式去处理
参考技术B 其实就是异步线程操作,数据库这里连接池不用我说了,关键是new Thread这一步你也需要自定义一个线程池,防止内存溢出,然后就是线程的安全问题。没有什么规范,只有安全 参考技术C 你可以测试一下执行的时间。
看看瓶颈在哪里,可能是数据库的操作sql语句的问题。
这个和多线程应该没有太大的关系。

以上是关于java线程中使用mysql连接查询数据库的主要内容,如果未能解决你的问题,请参考以下文章

Java异步MySQL查询

java使用jdbc连接mysql数据库,表里有记录,但是查询的结果集为空,是啥原因

java+mysql,关于根据拼音首字母查询

Java学习总结(十六)——MySQL数据库(中)分组,嵌套,连接查询及外键与关系表设计

java下连接mysql数据库 ——查询语句——select

多线程并发查询mysql数据库中的数据