JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
使用Java开发任何数据库应用程序的都需要4个主要接口:Driver、Connection、Statement、ResultSet;JDBC程序需要利用driver接口加载一个合适的数据库驱动程序,使用Connection接口连接到数据库,使用Statement接口创建和执行SQL语句,如果最后返回结果的话,使用ResultSet接口处理结果。
JDBC API支持两层和三层处理模型进行数据库访问,但在一般的JDBC体系结构由两层组成:
JDBC API: 提供了应用程序对JDBC的管理连接。
JDBC Driver API: 支持JDBC管理到驱动器连接。
JDBC API的使用驱动程序管理器和数据库特定的驱动程序提供透明的连接到异构数据库。
JDBC驱动程序管理器可确保正确的驱动程序来访问每个数据源。该驱动程序管理器能够支持连接到多个异构数据库的多个并发的驱动程序。
结构图如下,它显示了驱动程序管理器方面的JDBC驱动程序和Java应用程序的位置:
## 1.基本格式##
public Connection getConnection(){
try {
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
//获得连接
return DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc_db", "username", "password");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
## 2.重载GetConnection函数 ##
public Connection getConnection(String url,String driver,String username,String password){
try {
//加载驱动
Class.forName(driver);
//获得连接
return DriverManager.getConnection(url, username, password);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
## 3.通过读配置文件建立连接##
(1)建立配置文件DBConfig.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbc_db
username=root
password=******
(2)通过读取配置文件获得driver、URL、username、password
public Connection openConnection(){
Properties prop = new Properties();
String driver = null;
String url = null;
String username = null;
String password = null;
try {
prop.load(this.getClass().getClassLoader().getResourceAsStream("DBConfig.properties"));
driver = prop.getProperty("driver");
url = prop.getProperty("url");
username = prop.getProperty("username");
password = prop.getProperty("password");
Class.forName(driver);
//获得连接
return DriverManager.getConnection(url, username, password);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
## 4.关闭连接 ##
//关闭数据库连接
public void closeConnection(Connection conn){
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}