用这种方法连接数据库比较安全。
DBSource.java
package jdbc;
import java.sql.Connection;
import java.sql.SQLException;
public interface DBSource {
public Connection getConnection()throws SQLException;
public void closeConnection(Connection conn)throws SQLException;
}
DBConnection.java
package jdbc;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class DBConnection implements DBSource {
private Properties props;
private String url;
private String user;
private String password;
public DBConnection()throws IOException ,ClassNotFoundException{
this("jdbc.properties");
}
public DBConnection(String configFile)throws IOException,ClassNotFoundException{
props = new Properties();
props.load(new FileInputStream(configFile));
url = props.getProperty("yang.url");
user = props.getProperty("yang.user");
password = props.getProperty("yang.password");
Class.forName(props.getProperty("yang.driver"));
}
@Override
public void closeConnection(Connection conn) throws SQLException {
// TODO Auto-generated method stub
conn.close();
}
@Override
public Connection getConnection() throws SQLException {
// TODO Auto-generated method stub
return DriverManager.getConnection(url,user,password);
}
}
jdbc.properties
yang.driver=com.mysql.jdbc.Driver yang.url=jdbc\:mysql\://localhost\:3306/demo yang.user=root yang.password=123456
测试类
package jdbc;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.logging.Logger;
public class DBTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
DBConnection dbsource = new DBConnection();
Connection conn = dbsource.getConnection();
if(!conn.isClosed()){
System.out.println("sql connected!.....");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}catch(ClassNotFoundException e){
e.printStackTrace();
}
}
}