使用不同驱动程序时PreparedStatement之间的区别

时间:2012-02-21 13:55:46

标签: java mysql

我想知道下面的驱动程序哪个更快更可靠。

com.mysql.jdbc.PreparedStatement - mysql

java.sql.PreparedStatement - jdbc

那么在Java中使用哪一个很好?

3 个答案:

答案 0 :(得分:2)

com.mysql.jdbc.PreparedStatement实施java.sql.PreparedStatement

而是使用java.sql.PreparedStatement。您根本不希望代码担心特定于供应商的PreparedStatement。我建议始终在必要时使用API​​。

答案 1 :(得分:2)

从系统返回的java.sql.PreparedStatement实际上是数据库驱动程序的PreparedStatement实现的具体实例。例如,如果您使用的是mysql驱动程序,那么您获得的实际上是您要求将其与com.mysql.jdbc.PreparedStatement类进行比较的实例。

您可以看到MySQL版本here的代码,您可以在其中看到它实现了java.sql.PreparedStatement接口。

public class PreparedStatement 
        extends com.mysql.jdbc.StatementImpl 
        implements java.sql.PreparedStatement {
    ...

根据我的经验,我唯一一次想要将它转换为com.mysql.jdbc.PreparedStatement的唯一一次是能够获得语句的String代表及其输入...这可以是方便调试。

答案 2 :(得分:0)

您应该坚持使用java.sql接口类型。我认为没有理由下载到特定于供应商的实现。你得到的很少甚至没有;你失去了便携性。