JDBC定义了三个方面:①数据库的连接 ②SQL语句的执行 ③结果集的查询遍历等。
JDBC访问数据库的一般步骤:注册驱动,获取连接,获取statement(相当于控制台),执行SQL返回结果集,遍历结果集,释放连接。
注册驱动:DriverManager.registerDriver(new com.mysql.jdbc.Driver());
获取数据库连接:Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/databaseWeb","name","password");
获取statement,相当于控制台,可以执行SQL语句:
Statement statement = conn.createStatement();
执行SQL语句,获取结果集:
Result res = statement.executeQuery("select * from xxx");
遍历结果集:while(res.next()){xxxxxx};
最后根据上面相反的书序依次
①关闭结果集res.close(),
②关闭statement,statement.close();
③关闭connection,conn.close();
数据库的CRUD操作:
①查询,使用statement执行statement.executeQuery(String);
②插入人员信息,使用statement执行statement.executeUpdate(String);次方法用于执行Insert/update/delete等操作。返回影响的行数。
PreparedStatement:
PreparedStatement允许使用不完整的SQL语句,空缺的部分使用?代替,直到执行前的时候设置进去,如下:
PreparedStatement pst = conn.preparedStatement();
pst.setString(1,"xxx"); pst.setString(2,"xxx");等等。
int result = pst.executeUpdate(sql);
批处理:
Statement和PreparedStatement都可以执行批处理,但是SQL语句必须是INSERT/UPDATE/DELETE类型的,这几种类型的返回值都为int,表示影响的行数。Statement和PreparedStatement通过addBatch()方法添加SQL语句,执行结果为一int数组,里面的元素代表各SQL语句的执行结果。
处理结果集:
结果集ResultSet默认只可以向后滚动,若向向前或者自由滚动,需要在创建Statement时:
statement st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
DAO模式:
DAO(数据库操作对象,Database Access Object),是JDBC下的常用模式,保存数据时将Java Bean的属性拆分成正确的SQL语句,并保存到数据库中;读取数据时将数据从数据库中读取出来,并通过setter方法设置到Javabean中。
连接池: