JDBC Connection接口的用法(附带实例)
Java 程序中,所有的数据库操作都是从 Connection 接口开始的,该接口可以实现与特定数据库的连接。
Connection 接口中的常用方法如下表所示:
接下来,通过案例来演示 Connection 接口的使用(【实例 1】):
在后面的代码中,很多地方都需要获取数据库的连接并关闭连接,所以将这部分代码提到一个公共的 BaseDAO 类中,并将这个类放到 com.biancheng.net 中,代码如下:
接下来,修改实例 1,通过 BaseDAO 类完成数据库的连接和关闭:
JDBC 连接数据库之后添加到数据库中的数据有可能出现乱码,出现乱码的原因是我们使用的字符集和数据库的字符集不一致。所以,需要在 URL 中定义字符集。定义字符集时使用 useUnicode=true&characterEncoding=utf-8,该语句的意思是将国际的 gb2312 编码转化为 Unicode 编码。在数据库中可以使用中文。
Connection 接口中的常用方法如下表所示:
方法 | 方法描述 |
---|---|
Statement createStatement() throws SQLException | 创建一个 Statement 对象 |
PreparedStatement prepareStatement(String sql) throws SQLException | 创建一个 PreparedStatement 类型的对象 |
CallableStatement prepareCall(String sql) throws SQLException | 创建一个 CallableStatement 对象,此对象用于调用数据库的存储过程 |
DatabaseMetaData getMetaData() throws SQLException | 得到数据库的元数据 |
Void setAutoCommit(boolean autoCommit) throws SQLException | 设置数据库的自动提交,与事务有关 |
Savepoint setSavepoint() throws SQLException | 设置数据库的恢复点,与事务有关 |
void close() throws SQLException | 关闭数据库 |
接下来,通过案例来演示 Connection 接口的使用(【实例 1】):
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Demo { // MySQL 的数据库驱动程序 public static final String DRIVER = "com.mysql.jdbc.Driver"; // 数据库的 URL 连接地址 public static final String URL = "jdbc:mysql://localhost:3306/school"; // 数据库的账号 public static final String UNAME = "root"; // 数据库的密码 public static final String PSWD = "root1"; // main() 方法,连接数据库测试是否连接成功 public static void main(String[] args) { Connection connection = null; try { // 把驱动加载进来,建立连接 Class.forName(DRIVER); // 建立连接,写上对应的数据库 URL 和账号密码 connection = DriverManager.getConnection(URL, UNAME, PSWD); System.out.println("数据库连接成功"); } catch (ClassNotFoundException e) { // 如果有异常会执行该语句 System.out.println("加载失败"); e.printStackTrace(); } catch (SQLException e) { System.out.println("连接数据库错误"); e.printStackTrace(); } finally { try { // 执行结束,要关闭数据库连接 connection.close(); System.out.println("关闭数据库"); } catch (SQLException e) { System.out.println("关闭数据库异常"); e.printStackTrace(); } } } }程序的运行结果如下:
数据库连接成功
关闭数据库
在后面的代码中,很多地方都需要获取数据库的连接并关闭连接,所以将这部分代码提到一个公共的 BaseDAO 类中,并将这个类放到 com.biancheng.net 中,代码如下:
package com.biancheng.net; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; public class BaseDAO { // 定义 MySQL 的数据库驱动程序 public static final String DRIVER = "com.mysql.jdbc.Driver"; // 数据库连接字符串 public static final String URL = "jdbc:mysql:///school?useUnicode=true&characterEncoding=utf-8"; // 数据库服务器账号 public static final String USER = "root"; // 数据库服务器密码 public static final String PSWD = "root"; // 获取连接方法 public static Connection getConnection() { Connection con = null; try { // 加载驱动类 Class.forName(DRIVER); // 获取连接 con = DriverManager.getConnection(URL, USER, PSWD); } catch (ClassNotFoundException e) { System.out.println("加载失败"); e.printStackTrace(); } catch (SQLException e) { System.out.println("连接数据库错误"); e.printStackTrace(); } return con; } // 关闭数据库对象方法 public static void closeAll(Connection con) { try { if (con != null) { con.close(); } } catch (SQLException ex) { ex.printStackTrace(); } } }
接下来,修改实例 1,通过 BaseDAO 类完成数据库的连接和关闭:
import com.biancheng.net.BaseDAO; import java.sql.Connection; public class Demo { public static void main(String[] args) { // 从 BaseDAO 获取数据库连接 Connection conn = BaseDAO.getConnection(); System.out.println("数据库连接成功"); // 关闭数据库连接 BaseDAO.closeAll(conn); System.out.println("关闭数据库"); } }程序的运行结果如下:
数据库连接成功
关闭数据库
JDBC 连接数据库之后添加到数据库中的数据有可能出现乱码,出现乱码的原因是我们使用的字符集和数据库的字符集不一致。所以,需要在 URL 中定义字符集。定义字符集时使用 useUnicode=true&characterEncoding=utf-8,该语句的意思是将国际的 gb2312 编码转化为 Unicode 编码。在数据库中可以使用中文。