日期:2014-05-18  浏览次数:20755 次

JDBC: 两种方法,哪个对?
本帖最后由 u011405885 于 2013-09-17 03:46:06 编辑
 

方法1:


public class ConnectionProvider {

static String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static String DBURL = "jdbc:mysql://localhost:3306/recipe";
static String USERNAME = "root";
static String PW = "poiu0000";

public static Connection connection = null;

static {
try {
Class.forName(JDBC_DRIVER);
} catch (ClassNotFoundException e) {
System.out.println("Where is Driver?");
e.printStackTrace();
// return null;
}
System.out.println("Registered!");

try {
connection = DriverManager.getConnection(DBURL, USERNAME, PW);
System.out.println("Connected!!!");
} catch (SQLException ee) {
System.out.println("Connection Failed! ");
ee.printStackTrace();
// return null;
}
}

public static Connection getConnection() {
return connection;
}
}


------解决方案--------------------
都不对,connection怎么能是static的呢
------解决方案--------------------
两种都不对。放在static中的变量都只初始化一次。驱动只需加载一次。所以驱动放在static中。

public class ConnectionProvider {
 
    static String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    static String DBURL = "jdbc:mysql://localhost:3306/recipe";
    static String USERNAME = "root";
    static String PW = "poiu0000";
 
    public static Connection connection = null;
 
    static {
        try {
            Class.forName(JDBC_DRIVER);
        } catch (ClassNotFoundException e) {
            System.out.println("Where is Driver?");
            e.printStackTrace();
            // return null;
        }
        System.out.println("Registered!");
    }
        
 
    public static Connection getConnection() {
       &nb