预编译快的原因在于其先将sql语句发送到数据库中,让数据库来进行编译并存储到缓存中,然后将句柄传送回去,然后如果后续有相同逻辑的sql语句再来直接发送句柄和参数进行读取缓存进行复用,并且这样减少了网络传输的sql语句长度。
import java.sql.Connection;
import java.sql.DriverManager;
public class HelloWorld {
public static void main(string[] args){
System.out.println("Hello Maven~");
Connection conn = DriverManager.getconnection( ur: "")
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
<scope>runtime</scope>
</dependency>
上述代码中可以在运行时编译的原因是因为其接口是在java中本身就存在的,运行才时需要通过驱动来和数据库进行连接。所以编译时不存在是没有问题的不像使用MySQL 特有 API如
import com.mysql.jdbc.ConnectionImpl; // 需要编译时可见