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();同上一个方法,查询什么类型的数据,就用什么类型的方法;