java数据库连接

java.sql包详解

数据类型

java.sql.Array
java.sql.Blob
java.sq1.Clob
java.sql.Date
java.sq1.NC1ob
java.sq1.Struct
java.sq1.Time
java.sq1.Timestamp
java.sq1.SQLXML
java.sql.Ref
java.sql.RowId
java.sq1.SQLOutput
java.sq1.SQLData
java.sq1.SQLInput

枚举

java.sq1.SQLType
java.sq1.JDBCType
java.sq1.Types
java.sq1.RowIdLifeTime
java.sq1.PseudoColumnUsage
java.sql.ClientinfoStatus

API相关

java.sq1.Wrapper
java.sq1.Connection
java.sq1.Statement
java.sql.CallableStatement
java.sq1.PreparedStatement
java.sq1.DatabaseMetaData
java.sq1.ParameterMetaData
java.sq1.ResultSet
java.sql.ResultSetMetaData

驱动相关

java.sql.Driver
java.sql.DriverAction
java.sq1.DriverManager
java.sql.DriverPropertyInto
java.sq1.SQLPermission
java.sql.Savepoin

异常

java.sq1.BatchupdateException
java.sq1.DataTruncation
java.sq1.SQLClientInfoException
java.sq1.SQLDataException
java.sq1.SQLException
java.sq1.SQLFeatureNotSupportedException
java.sq1.SQLIntegrityConstraintViolationException
java.sq1.SQLInvalidAuthorizationSpecException
java.sql.SQLNonTransientConnectionException
jaya.sql.SQLNonTransientException
java.sq1.SQLSyntaxErrorException
java.sq1.SQLTimeoutException
java.sq1.SQLTransactionRollbackException
java.sql.SQLTransientConnectionException
java.sql.SQLTransientException
java.sql.SQLWarning

作为Java开发人员需要掌握的API

java.sq1.Wrapper
     T unwrap(java.lang.Class iface) throws java.sql.SQLException;
    //unwrap()方法用于返回未经过包装的JDBC驱动原始类型实例,我们可以通过该实例调用JDBC驱动中提供的非标准的方法。
     boolean isWrapperFor(java.lang.Class iface) throws java.sql.SQLException;
     //isWrapperFor()方法用于判断当前实例是否是JDBC驱动中某一类型的包装类型。
java.sq1.Connection
java.sq1.Statement
java.sq1.CallableStatoment
java.sq1.PreparedStatement
java.sq1.DatabaseMetaData
java.sql.ParameterMetaData
java.sql.ResultSet
java.sq1.ResultSetMetaData

javax.sql包详解

数据源

javax.sq1.DataSource
javax.sq1.CommonDataSource

连接池相关

javax.sq1.ConnectionPoolDataSource
javax.sql.PooledConnection
javax.sq1.ConnectionEvent
javax.sq1.ConnectionEventListener
javax.sq1.StatementEvent
javax.sq1.StatementEventListener

ResultSet扩展

javax.sql.RowSet
javax.sql.RowSetEvent
javax.sql.RowSetInternal
javax.sq1.RowSetListener
javax.sql.RowSetMetaData
javax.sq1.RowSetReader
javax.sql.RowSetWriter

分布式扩展

javax.sq1.XAConnection
javax.sq1.XADataSource

JDBC驱动

所有的JDBC驱动都必须实现Driver接口,而且实现类必须包含一个静态初始化代码块

package com.mysql.cj.jdbc;

import com.mysql.cj.jdbc.NonRegisteringDriver;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Driver extends NonRegisteringDriver implements java.sql.Driver {
    public Driver() throws SQLException {
    }

    static {
        try {
            DriverManager.registerDriver(new Driver());
        } catch (SQLException var1) {
            throw new RuntimeException("Can\'t register driver!");
        }
    }
}

当我们加载驱动实现类时,上面的静态初始化代码块就会被调用,向DriverManager中注册一个驱动类的实例。这就是为什么我们使用JDBC操作数据库时一般会先加载驱动

Class.forName("com.mysql.cj.jdbc.Driver")

为了确保驱动程序可以使用这种机制加载,Driver实现类需要提供一个无参数的构造方法。

常用的数据库驱动程序的驱动实现类名及JDBC URL如下:

Oracle

驱动程序类名:oracle.jdbc.driver.OracleDriver
JDBC URL:jdbc: oracle:thin:@//:/ServiceNamejdbc:oracle:thin:@::
例如:jdbc:oracle:thin:@localhost:1521:orcl

MySQL

驱动程序类名:com.mysql.jdbc.Driver。新驱动(com.mysql.cj.jdbc.Driver)
JDBC URL:jdbc: mysql://:/
例如:jdbc:mysql://localhost/sample

IBM DB2

驱动程序类名:com.ibm.db2.jcc.DB2Driver
JDBC URL:jdbc:db2://[:]/
例如:jdbc:db2://localhost:5000/sample

DataSource

你可能感兴趣的:(java数据库连接)