1 什么是jdbc
java database connectivity
2 常用的接口
2.1 Driver
com.mysql.jdbc.Driver
2.2 Connection
创建到特定数据库的连接,有了连接之后就好办事。
Connection conn = DriverManager.getConnection("jdbc:mysql://host:port/database", "user", "password");
常用方法:
第一,createStatement(),创建向数据库发送sql的Statement对象;
第二,prepareStatement(),创建向数据库发送sql的PrepareStatement对象;
第三,commit(),在该连接上提交事务;
第四,rollback(),在连接上回滚事务。
2.3 Statement
发送简单的sql,可能有sql注入。
2.4 PrepareStatement
发送带参数的sql,可以预防sql注入。
2.5 ResultSet
sql操作的返回结果。
3 jdbc的通用步骤
第一步,注册驱动
Class.forName(“com.MySQL.jdbc.Driver”);
第二步,建立连接
Connection con = DriverManager.getConnection(url, user, password);
第三步, 创建statement
String sql = "insert into user (name, pwd) value (?,?)";
PreparedStatement ps = conn.preparedStatement(sql);
ps.setString(1, "col_value");
ps.setString(2, "123456");
第四步,执行并获取结果
ResultSet rs = ps.executeQuery();
第五步,释放资源,顺序和创建的顺序相反
rs.close();
ps.close();
conn.close()
4 事务和回滚
事务就是一连串的sql操作,要么全部成功,要们全部失败。
当数据库的autocommit设置为false之后,在Statement上执行executeQuery()(或者在PreparedStatement上执行executeUpdate())之后并没有真正的将数据提交到数据库,这个时候,如果直接执行rollback操作,这些executeQuery()操作就会被丢弃。只有在调用commit()并且没有exception发生的情况下,才是真正的执行成功了。我们可以在异常处理中加入rollback操作,对提交失败的事务进行回滚,所以说,事务就是一连串的sql操作,要么全部成功,要么全部失败。