JDBC简介、原理、简单和数据库连接

版权声明:本文为博主原创文章,未经博主允许不得转载。 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 

猜你喜欢

转载自blog.csdn.net/qq_39588027/article/details/80642118