可重用的sql操作类

 public ResultSet doQuery(String sql,Object[] params){
ResultSet rs = null;
conn = this.getConnection();
try{
PreparedStatement pstmt = conn.prepareStatement(sql);
for(int i =0;i<params.length;i++){
pstmt.setObject(i+1, params[i]);
}
rs = pstmt.executeQuery();
}catch(Exception e){
e.printStackTrace();
}
return rs;
}
 public int doUpdate(String sql,Object[] params){
int res = 0;
conn = this.getConnection();
try{
PreparedStatement pstmt = conn.prepareStatement(sql);
for(int i=0;i<params.length;i++){
pstmt.setObject(i+1, params[i]);
}
res = pstmt.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}
return res;
}
 public List<Object>  doQueryList(String sql,Object []params){
List<Object> list = new ArrayList<Object>();
ResultSet rs = this.doQuery(sql, params);
try{
ResultSetMetaData rsmd = rs.getMetaData();
int columnLength = rsmd.getColumnCount();
while(rs.next()){
Map<String,Object> map = new HashMap<String,Object>();
for(int i = 1;i<=columnLength;i++){
map.put(rsmd.getColumnLabel(i), rs.getObject(i));
}
list.add(map);
}
}catch(Exception e){
e.printStackTrace();
}
return list;
}

查询所有信息的jsp关键代码如下

 <%
DBCon dbc = new DBCon();
String sql = "select * from schema.admin";
List list = dbc.doQueryList(sql, new Object[]{}); %>
<table border="1">
<%for(int i =0;i<list.size();i++){
Map<String,Object> map = (Map<String,Object>)list.get(i);
%>
<tr>
<td><%=map.get("id") %></td>
<td><%=map.get("username") %></td>
<td><%=map.get("password") %></td>
<td><a href="do_delete.jsp?id=<%=map.get("id")%>">删除</a></td>
<td><a href="do_edit.jsp?id=<%=map.get("id")%>">编辑</a></td>
</tr>
<%}
dbc.close();
%>
</table>
<a href="addAdmin.jsp">添加用户</a>

更新、删除登操作同理,不再列出。

借助预编译防止sql注入攻击的更多相关文章

  1. SQL注入和Mybatis预编译防止SQL注入

    什么是SQL注入?? 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或页面请求url的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.具体来说,它是利用现有应用程序,将(恶意)的SQL命 ...

  2. 实例讲解 SQL 注入攻击

    这是一篇讲解SQL注入的实例文章,一步一步跟着作者脚步探索如何注入成功,展现了一次完整的渗透流程,值得一读.翻译水平有限,见谅! 一位客户让我们针对只有他们企业员工和顾客能使用的企业内网进行渗透测试. ...

  3. Java程序员从笨鸟到菜鸟之(一百零二)sql注入攻击详解(三)sql注入解决办法

    sql注入攻击详解(二)sql注入过程详解 sql注入攻击详解(一)sql注入原理详解 我们了解了sql注入原理和sql注入过程,今天我们就来了解一下sql注入的解决办法.怎么来解决和防范sql注入, ...

  4. JSP网页防止sql注入攻击

    SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使 ...

  5. SQL注入攻击的常见方式及测试方法

    本文主要针对SQL注入的含义.以及如何进行SQL注入和如何预防SQL注入让小伙伴有个了解.适用的人群主要是测试人员,了解如何进行SQL注入,可以帮助我们测试登录.发布等模块的SQL攻击漏洞,至于如何预 ...

  6. java学习笔记38(sql注入攻击及解决方法)

    上一篇我们写了jdbc工具类:JDBCUtils ,在这里我们使用该工具类来连接数据库, 在之前我们使用 Statement接口下的executeQuery(sql)方法来执行搜索语句,但是这个接口并 ...

  7. Java学习笔记47(JDBC、SQL注入攻击原理以及解决)

    JDBC:java的数据库连接 JDBC本质是一套API,由开发公司定义的类和接口 这里使用mysql驱动,是一套类库,实现了接口 驱动程序类库,实现接口重写方法,由驱动程序操作数据库 JDBC操作步 ...

  8. 2017-2018-2 20179205《网络攻防技术与实践》第十一周作业 SQL注入攻击与实践

    <网络攻防技术与实践>第十一周作业 SQL注入攻击与实践 1.研究缓冲区溢出的原理,至少针对两种数据库进行差异化研究 缓冲区溢出原理   在计算机内部,输入数据通常被存放在一个临时空间内, ...

  9. web服务端安全之SQL注入攻击

    一.SQL注入攻击的原理攻击者在HTTP请求中,注入恶意的SQL代码,并在服务端执行.比如用户登录,输入用户名camille,密码 ' or '1'='1 ,如果此时使用参数构造的方式,就会出现 ' ...

随机推荐

  1. cookie和session的区别,分布式环境怎么保存用户状态

    cookie和session的区别,分布式环境怎么保存用户状态 1.cookie数据存放在客户的浏览器上,session数据放在服务器上. 2.cookie不是很安全,别人可以分析存放在本地的COOK ...

  2. Delphi:程序自己删除自己,适用于任何windows版本(含源码)

    Delphi:程序自己删除自己,适用于任何windows版本(含源码) function Suicide: Boolean; var   sei: TSHELLEXECUTEINFO;   szMod ...

  3. 编写一个c++工程

    c++接触的很少,之前也只是会编写一个简单的cpp文件,但一个工程的实现,往往不仅包括源文件(.cpp后缀文件)一般还有头文件(.h后缀文件)等.一个c++工程中只能有一个main函数,这个函数所在的 ...

  4. logstash笔记(一)——redis&es

    下载地址: https://www.elastic.co/downloads 版本:logstash-2.2.2 两台linux虚拟机,一台windows宿主机 shipper: 192.168.22 ...

  5. Java中的日志管理

    日志是应用程序运行中不可缺少的一部分,JAVA中有很多已经成熟的方案,尽管记录日志是应用开发中并不可少的功能,在 JDK 的最初版本中并不包含日志记录相关的 API 和实现.相关的 API(java. ...

  6. 微信小程序(wx:for)遍历对象

    最近在折腾微信小程序,遇到这么一个情况:后端返回一个key-value的对象数据,需要遍历对象的key-value,然后渲染到视图中.就像下面这样: { '2018-1-9':{ address: ' ...

  7. 读书笔记(04) - 错误监控 - JavaScript高级程序设计

    错误类型 即时运行错误 (代码错误) 资源加载错误 常见的错误 1. 类型转换错误 建议使用全等===操作符 2.数据类型错误 建议加强类型判断 // 数组倒序 function reverseSor ...

  8. Linux 变量的使用

    目录 1. Shell 脚本规范 2. Shell 脚本执行 3. Shell 脚本变量 3.1 环境变量 3.1.1 自定义环境变量 3.1.2 显示与取消环境变量 3.1.3 环境变量初始化与对应 ...

  9. logstash-input-jdbc同时同步多个表

    同步一个表,可以参考我的上一篇 logstash-jdbc-input与mysql数据库同步 同步多个表的做法,跟一个表类似,唯一不同的是 .conf 文件中的配置 在这里我加了一个脚本文件jdbc- ...

  10. WPF 数据绑定 使用Code First with Database

    一.准备工作 1.开发工具 Visual Studio 2013 2.安装 Entity Framework 6 Tools for Visual Studio 2012 & 2013 来实现 ...