一.JDBC概述
JDBC全称Java Data Base Connectivity,是Java程序操作数据库的标准API,是一种面向接口的编程,是Java操作数据库的规范,由一组类和接口组成,
它提供了操作数据库的基本方法,但对于这些方法的具体实现需要数据库厂商提供。
在数据库应用文件中找到ojdbc6.jar 这个包,这个包里的某些特定的方法实现了JDBC里的接口,从而连接到数据库,这个包称为数据库驱动包;
具体操作:将该包复制粘贴到Javaweb项目中的WebContentWEB-INFlib文件夹下,程序会自动引入该包。
Connection接口是jdk中定义好的一个数据库连接的接口, 在javaAPI当中没有定义任何实现该接口的实现类,
这些实现类将会由数据库厂商提供, 同样Statement, ResultSet这两个接口都是以这种形式来定义, 这样的编程模式成为面向接口编程。
二.JDBC API组成
JDBC主要有一个类和三个接口组成
1.DriverManager:驱动管理类
该类作用于用户和驱动程序之间,通过调用其getConnection方法可以获取Conncetion接口的实例
2.Connection 接口
该接口为数据库连接对象,位于java.sql包中;
常用方法:
Connection.createStatement();创建一个Statement对象来将sql语句发送到数据库,返回Statement对象(该方法由于安全性不高,很少用了)。
Connection.prepareStatement(String sql);将sql语句预编译放入PreparedStatement对象中,并返回该对象;
Connection.setAutoCommit(true|false);设置Connection对象提交方式(自动 / 手动);
3.Statement接口
该接口用于执行sql语句,在实际开发中,需要用变量做查询条件时,操作过于繁琐,而且安全性不高(注入式攻击),
一般使用preparedStament接口,该接口继承了Statement接口,并拥有其特定的方法。
常用方法(以preparedStatement为例):
prepareStatement.executeQuery();执行查询,返回ResultSet对象;
prepareStatement.executeUpdate();执行增删改,返回受影响的行数 int;
prepareStatement.addBatch();每次处理一条sql语句;
prepareStatement.executeBatch();将一批命令提交给数据库去执行,返回更新技术组成的数组 int[];
以占位符的形式构建sql语句,这里举例说明:
String sql = "select t.* from tablet where t.id=? and t.name in (?,?,?)";
prepareStatemenet.setInt(1, 24);
prepareStatemenet.setString(2, "Tom");
第一个参数: 占位符索引值, 第几个 ? , 就写几, 从1开始数;
第二个参数: 占位符的值;
设置什么类型的参数, 就用什么类型的方法.
4.ResultSet接口
该对象用于接收查询的结果集,包含了符合sql语句的所有行,同时该对象还提供了光标功能,可以自由定位到某一行中的数据;
常用方法:
resultSet.next();将光标向后移动一行,如果新行有效返回true,否则返回false,即用来判断是否有下一行数据;
resultSet.getString(""|int);如果新行有效,则获取改行某列数据,参数可以传字符串,表示该列的名称,传整数可表示位于第几列;
resultSet.getInt();同上一个方法,查询什么类型的数据,就用什么类型的方法;