JDBC编程
1. JDBC 简介
1.1 JDBC概述 : JDBC : Java DataBase Connectivity,是Sun公司制定的Java程序连接和操纵数据库的一组应用接口标准
1.2 JDBC 编程步骤
(1) 引入 java.sql 包的所有类及接口。
(2) 加载相应数据库的JDBC驱动程序。不同数据库系统的JDBC驱动程序不同,可根据java程序需要连接的数据库系统加载相应的驱动程序
(3) 定义JDBC连接的数据库对象。连接数据库时要指明连接数据库系统的名称,登录名和密码
(4) 连数据库。Java程序向数据库系统发送连接命令,并取得连接对象。
(5) 使用SQL语句操纵数据库。通过语句对象向数据库服务器发送SQL命令,数据库服务器执行SQL命令,并向java程序返回执行结果。
(6) 关闭Java程序与数据库的连接。
1.3 JDBC主要类和接口
(1) java.sql.Connection 接口,建立与特定数据库系统的连接,一个连接就是一个会话,建立连接后可以执行SQL语句。
(2) java.sql.CallableStatement 接口,执行SQL存储过程。
(3) java.sql.DriverManager 类,管理JDBC驱动程序
(4) java.sql.Data 类,该类是java.util.Date 的子类,用于表示与SQL DATE相同的日期类
(5) java.sql.DatabaseMetaData 接口,访问数据库的元信息
(6) java.sql.Driver 接口,定义数据库驱动程序接口。
(7) java.sql.DataTruncation 类,在JDBC遇到数据截断的异常时,报告一个警告(读数据时)或产生一个异常(写数据时)。
(8) java.sql.DriverPropertyInfo 类,通过DriverPropertyInfo 与Driver进行交流,可以使用getDriverPropertyInfo()方法获取驱动程序信息。
(9) java.sql.PreparedStatement 接口,该接口是Statement接口的子接口,创建可编译的SQL语句对象,该对象一次编译多次运行,提高SQL语句的执行效率。
(10) java.sqlResultSet 接口,用于创建表示SQL语句检索结果的结果集,用户通过结果集访问数据库。
(11) java.sql.Statement 接口,Statement 对象执行静态SQL语句,并获得语句执行后返回的结果。
(12) java.sql.SQLException 类,描述访问数据库时产生的异常信息。
(13) java.sqlSQLWarning 类,它是SQLException 类的子类,描述访问数据库时产生的警告信息。
(14) java.sqlTypes 类,定义了SQL类型常量,例如,常量 INTEGERT 与Java的基本类型int对应,SMALLINT常量与Java的基本类型short对应。
2. 连接数据库
Java 应用程序连接数据库分为3步,加载JDBC驱动程序、连接数据库系统和关闭。
2.1 加载JDBC驱动程序
语法格式:
Class.forName(数据库驱动程序);
2.2 连接数据库系统
MySQL 数据库的链接地址
语法格式:
jdbc:mysql://IP地址:端口号/数据库系统名
package JDBC_Basci;
import java.sql. *;
public class Demo1501 {
// 通过数据库驱动程序,地址,用户和密码连接数据库系统
public static Connection getMyConnection(String driverName, String uri, String userName, String password) throws Exception{
Class.forName(driverName); // 加载JDBC-MySQL 数据库驱动程序
return DriverManager.getConnection(uri, userName, password); // 连接数据库系统
}
// 通过数据库驱动程序、地址连接数据库系统
public static Connection getMyConnection(String driverName, String uri) throws Exception{
Class.forName(driverName); // 加载 JDBC-MySQL 数据库驱动程序
return DriverManager.getConnection(uri); // 连接数据库系统
}
public static void main(String[] args) throws Exception {
String driverName = "com.mysql.jdbc.Driver"; // MySQL 驱动程序
Connection conn;
// 连接 MySQL 数据库的字符串
// 包括 协议 | 驱动程序名 | 分隔符 | 主机名or IP地址 | 端口号 | 数据库名
// jdbc: | mysql: | // | localhost: | 3306 | jsu
// String uri1 = "jdbc:mysql://localhost:3306/jsu?useSSL=true";
// String username = "root";
// String password = "jsu12345";
// conn = Demo1501.getMyConnection(driverName, uri1, username, password);
String uri2 = "jdbc:mysql://localhost:3306/jsu?user=root&password=jsu123456&userSSL=true";
conn = Demo1501.getMyConnection(driverName, uri2);
System.out.println("---------连接成功!输出数据库元数据---------");
System.out.println("数据库名: " + conn.getMetaData().getDatabaseProductName());
System.out.println("数据库版本号: " + conn.getMetaData().getDatabaseProductVersion());
System.out.println("数据库驱动程序: " + conn.getMetaData().getDriverName());
conn.close();
}
}