时间:2021-07-01 10:21:17 帮助过:23人阅读
1 //Statement 2 String id = "5"; 3 String sql = "delete from table where id=" + id; 4 Statement st = conn.createStatement(); 5 st.executeQuery(sql); 6 //存在sql注入的危险 7 //如果用户传入的id为“5 or 1=1”,那么将删除表中的所有记录
1 //PreparedStatement 有效的防止sql注入(SQL语句在程序运行前已经进行了预编译,当运行时动态地把参数传给PreprareStatement时,即使参数里有敏感字符如 or ‘1=1‘也数据库会作为一个参数一个字段的属性值来处理而不会作为一个SQL指令) 2 String sql = “insert into user (name,pwd) values(?,?)”; 3 PreparedStatement ps = conn.preparedStatement(sql); 4 ps.setString(1, “col_value”); //占位符顺序从1开始 5 ps.setString(2, “123456”); //也可以使用setObject 6 ps.executeQuery();
4.处理执行结果(ResultSet)
1 ResultSet rs = ps.executeQuery(); 2 While(rs.next()){ 3 rs.getString(“col_name”); 4 rs.getInt(1); 5 //… 6 }
5.释放资源
//数据库连接(Connection)非常耗资源,尽量晚创建,尽量早的释放
//都要加try catch 以防前面关闭出错,后面的就不执行了
1 try { 2 if (rs != null) { 3 rs.close(); 4 } 5 } catch (SQLException e) { 6 e.printStackTrace(); 7 } finally { 8 try { 9 if (st != null) { 10 st.close(); 11 } 12 } catch (SQLException e) { 13 e.printStackTrace(); 14 } finally { 15 try { 16 if (conn != null) { 17 conn.close(); 18 } 19 } catch (SQLException e) { 20 e.printStackTrace(); 21 } 22 } 23 }
四、事务(ACID特点、隔离级别、提交commit、回滚rollback)
1.批处理Batch
插入2万条数据的测试2.测试事务的基本概念和用法
测试事务的基本概念和用法 控制台输出五、时间处理(Date和Time以及Timestamp区别、随机日期生成)
java.util.Date
测试时间处理(java.sql.Date,Time,Timestamp) 测试时间处理(java.sql.Date,Time,Timestamp),取出指定时间段的数据
六、CLOB文本大对象操作
测试CLOB 文本大对象的使用
七、BLOB二进制大对象的使用
测试BLOB二进制大对象的使用
八、总结(简单封装、资源文件properties处理连接信息)
db.properties JDBCUtil工具类 测试使用JDBCUtil工具类来简化JDBC开发JDBC
标签:上下 last snr use ISE java api new sdk ccf