创建声明和准备声明: 在这两种情况下服务器实际联系了哪一点? 在调用createStatement()或prepareStatement()时是否与DB服务器联系? 设置预准备语句的值时是否联系了DB? 而且我假设你在调用execute时确实存在通信?
另外,假设语句只运行一次因此,使用prepare语句不太普遍,它是否等同于创建语句并执行? vs prepare,set然后执行?
你可以同时使用这些方法吗?如果我有一个由DB驱动的网站怎么办?我可能同时有许多并发连接。 create,prepare和execute语句是否允许并发调用(如不崩溃)?它会实际并发执行还是内部同步的方法?
基于上述答案,如何优化并发访问?我知道你可以使用连接池。但是如果单个连接允许并发执行,那么有什么好处呢?
答案 0 :(得分:1)
只是你要问的部分内容,但是一次只有一个线程应该使用Connection /(Prepared)Statement / ResultSet。一般来说,它是相同的线程,但你也可以安排一些尴尬的切换。想要同时做事是很常见的事情,所以人们经常汇集数据库连接以节省重新连接时间。看看DBCP;它是一个连接池,用于执行类似于运行访问数据库的网站。