进阶

2018-07-07  本文已影响0人  Cicada丶

1、SQL注入攻击

2、PreparedStatement

  • PreparedStatement 能最大可能提高性能:
    DBServer会对预编译语句提供性能优化。因为预编译语句有可能被重复调用,所以语句在被DBServer的编译器编译后的执行代码被缓存下来,那么下次调用时只要是相同的预编译语句就不需要编译,只要将参数直接传入编译过的语句执行代码中就会得到执行。
  • 在statement语句中,即使是相同操作但因为数据内容不一样,所以整个语句本身不能匹配,没有缓存语句的意义.事实是没有数据库会对普通语句编译后的执行代码缓存.这样每执行一次都要对传入的语句编译一次。
    (语法检查,语义检查,翻译成二进制命令,缓存)
  • PreparedStatement 可以防止 SQL 注入 。

3、使用JDBC驱动程序处理元数据

4、DateBaseMetaDate

5、ResultMetaDate

用例
Connection conn = JdbcUtil.getConnection();

String sql = "insert into user(name,password,email,birthday) values('abc','123','abc@sina.com','1978-08-08')";

PreparedStatement st = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS );

st.executeUpdate();

ResultSet rs = st.getGeneratedKeys();  //得到插入行的主键

if(rs.next()){
    System.out.println(rs.getObject(1));
}

6、数据库事务

7、JDBC事务处理

8、数据库的事务间的隔离级别(可见性)

image.png
image.png
上一篇 下一篇

猜你喜欢

热点阅读