SQL语句预编译

SQL语句预编译能预防SQL注入提高安全性,是因为SQL语句在程序运行前已经进行了预编译,在程序运行时第一次操作数据库之前,SQL语句已经被数据库分析,编译和优化,对应的执行计划也会缓存下来并允许数据库以参数化的形式进行查询,当运行时动态地把参数传给PreprareStatement时,即使参数里有敏感字符如 or '1=1'也数据库会作为一个参数一个字段的属性值来处理而不会作为一个SQL指令,就起到了SQL注入的作用。

一、加载驱动

Class.forName("com.mysql.jdbc.Driver");//加载驱动

二、建立连接数据库对象

Connection conn=null;

conn = DriverManager.getConnection("jdbc:mysql:///test","root","root");

三、定义SQL语句,参数为?

String sql="select * from student1 where stunum=?";

四、建立预编译执行对象

PreparedStatement psm = null;

psm=conn.prepareStatement(sql);

五、设置sql语句中的参数值

psm.setString(1,stuNum);

六、定义结果集,把执行对象的查询结果放入rs中

ResultSet rs = null;

rs=psm.executeQuery();

七、打印结果

while (rs.next()){

String stunum=rs.getString(1);

String stuname=rs.getString(2);

String stuclass=rs.getString(3);

System.out.println("查询学生信息如下:");

System.out.println(stunum+" "+stuname+" "+stuclass);

}

八、关闭资源

if (rs!=null){

try {

rs.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if (psm!=null){

try {

psm.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if (conn!=null){

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

mysql预编译语句拼接查询_SQL语句预编译(查询)相关推荐

  1. mysql从大到小排序_sql语句时间排序 sql语句按照时间排序

    sql语句时间排序 sql语句按照时间排序以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! SQL按时间排序 select ...

  2. sql镶嵌查询_SQL语句 - 嵌套查询

    嵌套查询的意思是,一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询.其中外层查询也称为父查询,主查询.内层查询也称子查询,从查询. ...

  3. mysql按课程报名人数排序_sql 语句排序 在查询结果中按人数降序排列,若人数相同,则按课程号升序排列?...

    展开全部 代码如下: select xuehao as 学号,score as 总成绩 from CJBwhere xuehao in( select xuehao from XSB) group b ...

  4. mysql按专业人数升序查询_sql 语句排序 在查询结果中按人数降序排列,若人数相同,则按课程号升序排列?...

    代码如下: select xuehao as 学号,score as 总成绩 from CJBwhere xuehao in( select xuehao from XSB) group by xue ...

  5. mysql同姓查询_sql语句中在学生信息表中查询同姓的学生姓名

    展开全部 1.创建一个bai测试表,如下图 createtabletest_duname(idint,namevarchar2(20))zhi: 2.插入测试数据dao,如下图 insertintot ...

  6. mysql根据字段长度查询_SQL语句如何查询某一字符串字段长度等于某个值的所有记录...

    展开全部 可以32313133353236313431303231363533e59b9ee7ad9431333366303066使用length()函数.比如:select * from test  ...

  7. mysql怎样添加一条数据_sql语句怎么添加一条记录?

    展开全部 sql语句中,添加记录的语法为:insert into 表名 (col1,col2....coln)values(value1,value2.....valuen): 其中,如果你插入的每一 ...

  8. mysql每组结果分页显示_SQL语句mysql分组统计并对每组分页

    最近一个需求如图,为了避免多次查询数据库,就想着尽量写成一个SQL语句 最相关人物 最相关联系方式 最相关邮箱 最相关地址 张三 23 18900000000 24 本人 12 广东省深圳市龙华区某某 ...

  9. mysql中两个表连接_SQL语句中两个表的连接

    展开全部 一.外连接 1.左连接  left join 或 left outer join SQL语句:select * from student left join score on student ...

最新文章

  1. 简单介绍python的input,print,eval函数
  2. 数据库schema 是什么
  3. 到喜啦携手神策数据,大数据加速产品服务的创新整合发展
  4. AC_Automata模板
  5. python开课吧1980课程_开课吧的课程怎么样?
  6. ORACLE 11g安装图解
  7. 如何理解和运用策略模式
  8. linux fstab 启动,修改-etc-fstab后Linux不能启动
  9. python建模预测_如何使用Python进行节目观众数的线性回归预测
  10. 计算机vb题库程序代码编写,11计算机专业VB试题(二)
  11. Json-Handle插件下载安装使用
  12. 手把手教你写网络爬虫:Web应用的漏洞检测实战篇!
  13. java驱动打印机,r230打印机驱动-r230打印机驱动 免费版
  14. LED闪烁 闪灯芯片IC 手电筒IC 闪灯控制IC 闪烁IC流水灯
  15. python爬虫之英汉互译(爬虫+pyqt5)
  16. 人人都会点数据分析 | 了解数据
  17. java8高级应用与开发课件和贯穿案例(全)分享
  18. 《计算广告》第二部分在线广告产品逻辑——笔记(上)
  19. 华为v65智能屏搭载鸿蒙咯嘛,华为智慧屏V65深测:真智慧or增智慧?
  20. L1-051 打折 (5分)

热门文章

  1. wordList04
  2. Java ThreadLocal
  3. newcode Gene Tree 点分治
  4. 生成函数Euler变换学习笔记(无标号有根树计数)
  5. 2019牛客多校第一场
  6. K - Triangle 计蒜客 - 42405
  7. [JSOI2007]字符加密
  8. AT2365-[AGC012E]Camel and Oases【状压dp】
  9. Loj#2769-「ROI 2017 Day 1」前往大都会【最短路树,斜率优化】
  10. P4313-文理分科【最小割】