蓝桥杯Java课程学习——JDBC(一)
JDBC 连接数据库
涉及到建立一个 JDBC 连接的编程主要有四个步骤:
- 导入 JDBC 驱动: 只有拥有了驱动程序我们才可以注册驱动程序完成连接的其他步骤。
- 注册 JDBC 驱动程序:这一步会导致 JVM 加载所需的驱动类实现到内存中,然后才可以实现 JDBC 请求。
- 数据库 URL 指定:创建具有正确格式的地址,指向到要连接的数据库。
- 创建连接对象:最后,代码调用 DriverManager 对象的 getConnection() 方法来建立实际的数据库连接。
导入 JDBC 驱动
需要下载对应数据库的 jdbc 驱动,将其导入到项目中
注册 JDBC 驱动程序
我们在使用驱动程序之前,必须注册你的驱动程序。注册驱动程序的本质就是将我们将要使用的数据库的驱动类文件动态的加载到内存中,然后才能进行数据库。
比如我们使用的 Mysql 数据库。我们可以通过以下两种方式来注册我们的驱动程序。
Class.forName()
:
动态加载一个类最常用的方法是使用 Java 的Class.forName()
方法,通过使用这个方法来将数据库的驱动类动态加载到内存中,然后我们就可以使用。
使用Class.forName()
来注册 Mysql 驱动程序:
try {
Class.forName("com.mysql.jdbc.Driver");
}
catch(ClassNotFoundException ex) {
System.out.println("Error: unable to load driver class!");
System.exit(1);
}
DriverManager.registerDriver()
:
Driver driver = new com.mysql.jdbc.Driver();
DriverManager.registerDriver(driver);
指定数据库连接 URL
当加载了驱动程序,便可以使用 DriverManager.getConnection()
方法连接到数据库了。
这里给出DriverManager.getConnection()
三个重载方法:
getConnection(String url)
getConnection(String url, Properties prop)
getConnection(String url, String user, String password)
数据库的 URL 是指向数据库地址。下表列出了下来流行的 JDBC 驱动程序名和数据库的 URL。
RDBMS | JDBC 驱动程序的名称 | URL |
---|---|---|
Mysql | com.mysql.jdbc.Driver | jdbc:mysql://hostname/ databaseName |
Oracle | oracle.jdbc.driver.OracleDriver | jdbc:oracle:thin:@hostname:port Number:databaseName |
DB2 | COM.ibm.db2.jdbc.net.DB2Driver | jdbc:db2:hostname:port Number/databaseName |
Sybase | com.sybase.jdbc.SybDriver | jdbc:sybase:Tds:hostname: port Number/databaseName |
创建连接对象
下面三种形式DriverManager.getConnection()
方法来创建一个连接对象,以 Mysql 为例。getConnection()
最常用形式要求传递一个数据库 URL,用户名username
和密码password
。
- 使用数据库 URL 的用户名和密码
String URL = "jdbc:mysql://localhost/EXAMPLE";
String USER = "username";
String PASS = "password"
Connection conn = DriverManager.getConnection(URL, USER, PASS);
- 只使用一个数据库 URL
然而,在这种情况下,数据库的 URL,包括用户名和密码。
String URL = "jdbc:mysql://localhost/EXAMPLE?user=root&password=0909";
//Mysql URL的参数设置详细可以查阅相关资料
Connection conn = DriverManager.getConnection(URL);
- 使用数据库的 URL 和一个 Properties 对象
import java.util.*;
String URL = "jdbc:mysql://localhost/EXAMPLE";
Properties pro = new Properties( );
//Properties对象,保存一组关键字-值对
pro.put( "user", "root" );
pro.put( "password", "" );
Connection conn = DriverManager.getConnection(URL, pro);
- 关闭 JDBC 连接
conn.close();
示例
import java.sql.*;
public class CreateDatabase{
public static void main(String[] args){
Connection connection = null;
try{
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/", "root", "");
Statement statement = connection.createStatement();
statement.execute("create database EXAMPLE");
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(SQLException e){
e.printStackTrace();
}finally{
try{
if(connection != null){
connection.close();
}
}catch(SQLException e){
e.printStackTrace();
}
}
}
}