版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39588027/article/details/80642118
1 JDBC简介
Java 数据库连接,(Java Database Connectivity,简称JDBC)
是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,
提供了诸如查询和更新数据库中数据的方法。
JDBC也是Sun Microsystems的商标。它JDBC是面向关系型数据库的。
简单地说,就是用于执行SQL语句的一类Java API,
通过JDBC使得我们可以直接使用Java编程来对关系数据库进行操作。
通过封装,可以使开发人员使用纯Java API完成SQL的执行。
2 JDBC原理
Application
|
JDBC Driver Interface
| | |
| | |
Oracle JDBC Driver SQLServer JDBC Driver Mysql JDBC Driver
| | |
| | |
Oracle Database SQLServer Database MySQL Database
JDBC是以前SUN公司定义的一套访问数据库的接口(没有具体实现),
一套标准,具体的实现是由各大数据库厂家实现,
每个数据库厂家都有自己的JDBC实现,也就是JDBC驱动实现类,
Java应用程序连接指定数据库,需要使用厂家提供的JDBC驱动才能连接。
(这里其实就是Java多态的一种体现,一个接口可以有很多具体实现)
例子:
package TestExample;
//STEP 1. Import required packages
import java.sql.*;
public class FirstExample {
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/test?
serverTimezone=UTC&characterEncoding=utf8&useSSL=false";
// Database credentials -- 数据库名和密码自己修改
static final String USER = "root";
static final String PASSWORD = "035487";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try {
// STEP 2: Register JDBC driver
Class.forName("com.mysql.cj.jdbc.Driver");
// STEP 3: Open a connection
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL, USER,
PASSWORD);
// STEP 4: Execute a query
System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql = "SELECT studentid, name, college,"
+ " profession from student1";
ResultSet rs = stmt.executeQuery(sql);
// STEP 5: Extract data from result set
while (rs.next()) {
// Retrieve by column name
String studentid = rs.getString("studentid");
String name = rs.getString("name");
String college = rs.getString("college");
String profession = rs.getString("profession");
// Display values
System.out.print("ID: " + studentid);
System.out.print(", Age: " + name);
System.out.print(", college: " + college);
System.out.println(", profession: " + profession);
}
// STEP 6: Clean-up environment
rs.close();
stmt.close();
conn.close();
} catch (SQLException se) {
// Handle errors for JDBC
se.printStackTrace();
} catch (Exception e) {
// Handle errors for Class.forName
e.printStackTrace();
} finally {
// finally block used to close resources
try {
if (stmt != null)
stmt.close();
} catch (SQLException se2) {
} // nothing we can do
try {
if (conn != null)
conn.close();
} catch (SQLException se) {
se.printStackTrace();
} // end finally try
} // end try
}// end main
}// end FirstExample