Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/","root", "password");
假设在 Java 中,我们可以通过上面的代码创建一个 mysql 连接。从connection
对象中,我们可以创建几个statement
对象,如下所示:
statement = connection.createStatement();
我想知道,如果我们在不同的线程中执行这些statement
对象(通过调用statement.executeQuery
),它们会在 Mysql 数据库中同步执行还是异步执行?因为我所知道的是,mysql 中的一个连接将作为一个线程处理,所以我的想法是,由该连接创建的所有语句都将在其队列中调度。我对么?
所以,如果我有一个servlet
像下面这样的:
public class HelloServlet extends HttpServlet {
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/","root", "password");
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
statement = connection.createStatement();
}
}
从上面的代码来看,如果有多个用户servlet
同时连接到,会不会因为语句不能同时并行执行而互相阻塞?那么,他们必须等待前一个语句完成执行才能轮到他们吗?有什么办法可以避免这种问题?