Jdbc使用总结和工具封装(一)
JDBC概述
Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。JDBC是面向关系型数据库的。
在J2SE中,提供了一个称之为JDBC-ODBC桥(JDBC-ODBC Bridge)的API。通过ODBC,JDBC-ODBC桥驱动程序可以访问所有支持ODBC的关系型数据库。与JDBC API不同的是,这个驱动程序并不是由Java代码而是由机器代码(native code)编写,并且不是开放源代码的。
SUN公司要求数据库提供商根据JDBC规范完成对应的连接和实现方式,提供给程序员使用。
JDBC所有要求规范和目标接口
java.sql.*
javax.sql.*
cmd 连接数据库和jdbc条件分析
cmd > mysql -uroot -p
cmd > mysql -hlocalhost -uroot -p
mysql 明确当前数据库操作指向为MySQL数据库服务器。
-h 当前数据库所在的服务器IP地址,域名或者主机名
-u 用户名,当前登录数据库的用户名
-p 密码。对应当前用户名密码信息
- 明确数据库选择
- 确定数据库的所在位置IP地址
- 对应当前登录使用的用户名和密码
JDCB需要的条件:
1. 需要给予当前Java程序对应当前数据库的【驱动】。提供条件建立数据库和Java程序的桥梁
2. JDBC规范的url
jdbc:mysql://localhost:3306/javaee2011
jdbc: 主协议,当前主协议为JDBC协议,当前URL为一个JDBC协议URL
mysql: 子协议,表示当前数据库选择为MySQL
localhost:3306 当前数据库所在的IP地址,域名或者主机名已经当前数据库对应的【端口号】。端口号是程序在
服务器中的唯一编号
javaee2011: 当前Java程序操作的所有SQL语句对应数据库是哪一个
3. 提供对应的用户名和密码信息,要求数据类型为字符串类型
JDBC核心API
class java.sql.DriverManager 驱动管理类
--| void registerDriver(java.sql.Driver driver);
加载Java程序连接数据库所需驱动类【java.sql.Driver接口规范】
--| java.sql.Connection getConnection(String url, String username, String password);
通过JDBC规范url,对应数据库用户名和密码连接获取数据库连接对象 【java.sql.Connection 接口】
interface java.sql.Conection 数据库连接接口
--| java.sql.Statement createStatement();
获取数据库SQL语句搬运工对象,不对SQL语句进行任何的检查,直接从Java代码搬运到数据库执行。 【java.sql.Statement 接口】
--| java.sql.PreparedStatement prepareStatement(String sql);
获取数据库SQL语句【预处理搬运工对象】,会对SQL语句进行预处理操作,允许SQL语句使用参数占位。可以避免基本的SQL注入问题。【java.sql.PreparedStatement 接口】
interface java.sql.Statement 数据库搬运工对象
--| int executeUpdate(String sql);
执行update,delete,insert 对应SQL语句,返回值类型是当前SQL语句操作数据库,对数据行的影响行数。
Query OK, 1 row affected
--| java.sql.ResultSet executeQuery(String sql);
执行select 对应SQL语句,返回值类型是查询结果集对象。【java.sql.ResultSet 接口】
interface java.sql.PreparedStatement 预处理SQL语句搬运工对象
--| int executeUpdate();
执行在获取PreparedStatement对象预处理SQL语句过程中对应的SQL语句,可以处理update,delete,insert SQL语句,返回值类型是数据行受到影响的行数。
--| java.sql.ResultSet executeQuery();
执行在获取PreparedStatement对象预处理SQL语句过程中对应的SQL语句,可以处理select SQL语句,返回值类型是查询结果集对象【java.sql.ResultSet 接口】
--| setXXX(int index, XXX value);
给予当前SQL语句参数占位符赋值操作。可以支持任意类型,
推荐使用 void setObject(int index, Object value);
interface java.sql.ResultSet 数据库查询结果集对象
--| XXX getXXX(int columnCount);
可以获取任意数据类型,要求根据当前字段对应数据类型来选择对应处理方式。要求传入的参数是查询结果集中的字段下标位置。
--| XXX getXXX(String fieldName);
可以获取任意数据类型,要求根据当前字段对应数据类型来选择对应处理方式。根据字段名字获取对应字段数据。
int getParameterCount();
int getColumnCount();
String getColumnName(int index);