mybatis执行器1---简单描述JDBC
1、简单描述JDBC
(1)、JDBC的执行过程
(2)JDBC的三种执行器(也不叫执行器,可以叫做执行计划)
a、preparestatement预编译,预编译指的是DB的编译器,会对此sql语句提前编译。然后将预编译的sql语句缓存起来,下次执行时,直接通过设置值的方式,执行语句。(都是数据库做的)
b、statement是每次都需要数据库编译器编译,然后进行查询。
c、Callable Statement对应存储过程。可以设置出参和读取入参。
d、当执行批处理时,Statement的优点是可以一次发送多条不同的静态sql。preparestatement的优点是当执行同一条语句设置不同的参数时,可以一次性完成。
(3)、sql注入简单描述
preparestatement向数据库发送的语句是预编译之后的语句以及需要传入的参数。发送到数据后数据库进行参数转义,解析处理。从而防止sql注入。
statement传入的是拼装好的sql语句,因此数据库会直接编译执行,发送注入风险。
(3)、传输相关的几种参数(也就是JDBC到数据可以携带的传输相关的参数。应用可认为是JDBC):
2、JDBC代码实例:
public void jdbcTest() throws SQLException { // 预编译 String sql = "SELECT * FROM users WHERE `name`=?"; PreparedStatement sql1 = connection.prepareStatement(sql); sql1.setString(1,"张麻子");//设置你需要查询的name System.out.println(sql); sql1.execute(); ResultSet resultSet = sql1.getResultSet(); //获取结果集之后需要根据查询结果的类型来取得最终的值。 while (resultSet.next()) { System.out.println(resultSet.getInt(1)); System.out.println(resultSet.getString(2)); } resultSet.close(); sql1.close();; }