Java的JDBC编程
- JDBC,即Java Database Connectivity,java数据库连接。是一种用于执行SQL语句的Java API,它是Java中的数据库连接规范。这个API由java.sql.,javax.sql. 包中的一些类和接口组成,它为Java开发人员操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问。
1.JDBC工作原理
- JDBC访问数据库层次结构:
- JDBC优势
- Java语言访问数据库操作完全面向抽象接口编程;
- 开发数据库应用不用限定在特定数据库厂商的API;
- 程序的可移植性大大增强;
2.JDBC的使用
- 创建数据库连接Connection;
- 创建操作命令Statement;
- 使用操作命令来执行SQL;
- 处理结果集ResultSet;
- 释放资源;
2.1建立数据库连接
- MySQL数据连接的URL参数格式如下:
jdbc:mysql://服务器地址:端口/数据库名?参数名=参数值
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/students?user=root&password=xxxxxx&useSSL=false&useUnicode=true&characterEncoding=UTF-8");
2.2创建操作命令(Statement)
Statement statement = connection.createStatement();
2.3执行SQL语句
- 这里executeQuery是查询方法,里面和Mysql语句一样;
ResultSet resultSet= statement.executeQuery("select id, name, sex, age from student");
2.4处理结果集
while(resultSet.next()){
String id = resultSet.getString("id");
String name = resultSet.getString("name");
String sex = resultSet.getNString("sex");
int age = resultSet.getInt("age");
System.out.printf("id = %s,name = %s,sex = %s,age = %s%n",id,name,sex,age);
}
2.5释放资源(关闭结果集,命令,连接)
if(resultSet != null){
try {
resultSet.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if (statement != null){
try {
statement.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if (connection != null){
try {
connection.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
3.上述所有操作代码
package test.jdbc;
import java.sql.*;
public class Main {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.jdbc.Driver");
Connection connection =
DriverManager.getConnection("jdbc:mysql://localhost:3306/students?user=root&password=xxxxxx&useSSL=false&useUnicode=true&characterEncoding=UTF-8");
Statement statement = connection.createStatement();
ResultSet resultSet= statement.executeQuery("select id, name, sex, age from student");
while(resultSet.next()){
String id = resultSet.getString("id");
String name = resultSet.getString("name");
String sex = resultSet.getNString("sex");
int age = resultSet.getInt("age");
System.out.printf("id = %s,name = %s,sex = %s,age = %s%n",id,name,sex,age);
}
if(resultSet != null){
try {
resultSet.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if (statement != null){
try {
statement.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if (connection != null){
try {
connection.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
- 这里就输出了查询的学生表(这里的学生表是自己之前在Mysql里面创建好的);