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 编码。在数据库中可以使用中文。
ICP备案:
公安联网备案: