JDBC-API

访问数据库

/**
 * 在 java.sql 包中有 3 个接口分别定义了对数据库的调用的不同方式:
 * * Statement
 * * PrepatedStatement
 * * CallableStatement
 */

Statement

/**
 * 通过调用 Connection 对象的 createStatement 方法创建该对象
 * 用于执行静态的 SQL 语句,并且返回执行结果,下列方法执行 SQL 语句:
 * ResultSet excuteQuery(String sql)
 * int excuteUpdate(String sql)
 */

PreparedStatement

/**
 * 可以通过调用 Connection 对象的 preparedStatement() 方法获取该对象,是 Statement 的子接口,表示一条预编译过的 SQL 语句
 * PreparedStatement 对象所代表的 SQL 语句中的参数用问号(?)来表示,调用 setXXX() 方法来设置这些参数,setXXX() 方法有两个参数,第一个参数是要设置的 SQL 语句中的参数的索引(从 1 开始),第二个是设置的 SQL 语句中的参数的值
 *
 * PreparedStatement 代码的可读性和可维护性更好,不用拼接 SQL,可以防止 SQL 注入,能最大可能提高性能,DBServer会对预编译语句提供性能优化,因为预编译语句有可能被重复调用
 * Statement 中,即使是相同操作但因为数据内容不一样,需要重新执行(语法检查,语义检查,翻译成二进制命令,缓存)
 */

ResultSet

/**
 * ResultSet 对象以逻辑表格的形式封装了执行数据库操作的结果集,ResultSet 接口由数据库厂商实现
 * ResultSet 对象维护了一个指向当前数据行的游标,初始的时候,游标在第一行之前,可以通过 ResultSet 对象的 next() 方法移动到下一行
 * ResultSet 接口的常用方法:
 * boolean next()
 * getString()
 */

流程

/**
 * java.sql.DriverManager 用来装载驱动程序,获取数据库连接
 *
 * java.sql.Connection 完成对某一指定数据库的联接
 *
 * java.sql.Statement 在一个给定的连接中作为SQL执行声明的容器,他包含了两个重要的子类型
 *
 * Java.sql.PreparedSatement 用于执行预编译的sql声明
 *
 * Java.sql.CallableStatement 用于执行数据库中存储过程的调用
 *
 * java.sql.ResultSet 对于给定声明取得结果的途径
 */

类型对应

java类型

SQL类型

boolean

BIT

byte

TINYINT

short

SMALLINT

int

INTEGER

long

BIGINT

String

CHAR,VARCHAR,LONGVARCHAR

byte array

BINARY  ,  VAR BINARY

java.sql.Date

DATE

java.sql.Time

TIME

java.sql.Timestamp

TIMESTAMP

原文地址:https://www.cnblogs.com/jhxxb/p/10440065.html