PreparedStatement

  1.Why

  1):使用Statement需要进行拼写SQL语句,很辛苦,而且容易出错。

  2):使用Statement可以发生SQL注入。

  SQl注入:

  SQL注入是利用某些系统对用户输入的数据进行充分的检查

  而在用户输入数据中注入非法的SQL语句段或命令,从而充分利用系统的SQL引擎完成恶意行为的做法

  对于Java而言,要防范SQL注入,只要用PrepareStatement取代Statement就可以了

  String username = a'OR PASSWORD= ;

  String password = OR '1'='1;

  String sql=SELECT * FROM users WHERE username = '

  +username.+'AND

  +password='+passwoed+';

  System.out.println(sql);

  SELECT * FROM users WHERE username='a' OR PASSWORD='AND password = 'OR '1'='1'

  '

  2.What

  1):是Statement的子接口。

  2):可以传入带占位符的SQL语句,并且提供了补充占位符变量的方法

  3.How

  1):创建PreparedStatement

  String SQL=INSERT INTO examstudent VALUES(?,?,?,?,?,?,?);

  PrepareStatement ps=conn.prepareStatement(sql);

  2):调用PreparedStatement 的 setXxx(int index,Object val)设置占位符的值,index,值从1开始

  3):执行SQL语句 executeUpdate() 或 executeQuery()

  ResultSetMetaData

  1.Why:如果只有一个结果集,但不知道该结果集中有多少列,列的名字都是什么

  1):编写通用的查询方法是需要使用。

  publicTget(Classclazz,String sql.Object ...args)

  2.What:用于描述ResultSet的对象

  3.How

  1):得到ResultSetMetaData对象,调用ResultSet的getMetaData()方法

  ResultSetMetaData rsmd=resultSet.getMetaData();

  2):ResultSetMetaData有哪些好用的方法;

  int getColumnCount();结果集中的列数

  String getColumnLabel(int column);获取指定的列的列名,其中索引从1开始

  while(resultSet.next()){

  for(int i=0;irsmd.getcolumncount();i++){ p=

  String columnLable=rsmd.getColumnLabel(i+1);

  }

  }

JDBC的通用查询的方法的更多相关文章

  1. jdbc调用存储过程的方法

    ----------------------------jdbc调用存储过程的方法---------------------------------------------------private ...

  2. 三种JDBC批量插入编程方法的比较

    JDBC批量插入主要用于数据导入和日志记录因为日志一般都是先写在文件下的等. 我用Mysql 5.1.5的JDBC driver 分别对三种比较常用的方法做了测试 方法一,使用PreparedStat ...

  3. 封装JDBC操作数据库的方法

    自己动手封装java操作数据库的方法: 一:目录结构 二:所需依赖的第三方jar包 这里只需引入mysql-connector-java-5.1.8-bin.jar,mysql数据库驱动jar包 三: ...

  4. jdbc调试sql语句方法

    在main命令行输入三个参数到oracle 的 dept2表(自己建的 和dept一样(deptno,dname,loc)),插入到数据库中去.通过本例子,学习在java里调试sql的方法. 写完sq ...

  5. DOMINO的JDBC和ODBC连接方法

     利用ODBC实现Domino和关系数据库的互操作 Lotus Domino是当今办公自动化系统的主流开发平台之一,Domino自带一个非关系型数据库–文档型数据库,而目前大部分企业的信息都储存在 ...

  6. Mysql学习之十二:JDBC连接数据库之DriverManager方法

    JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包括7个步骤: 1.载入JDBC驱动程序: 在连接数据库之前.首先要载入想要连接的数据库的驱动到JVM(Java虚拟机). 这通过java.l ...

  7. jdbc加载驱动方法

    1.Class.forName("com.mysql.jdbc.Driver"); 2. DriverManager.registerDriver(new com.mysql.jd ...

  8. java篇之JDBC原理和使用方法

    JDBC学过但又属于很容易忘记的那种,每次要用到,都要看下连接模式.每次找又很费时间,总之好麻烦呀呀呀,所以写篇博客,总结下原理和常用接口,要是又忘了可以直接来博客上看,嘿嘿. 一.什么是JDBC 1 ...

  9. 错误:“Cannot load JDBC driver class 'com.mysql.jdbc.Driver”的解决方法

    “Cannot load JDBC driver class 'com.mysql.jdbc.Driver ” 表示没有JDBC连接MySql的驱动包,因此需要手动添加驱动包到WEB-INF目录下的l ...

随机推荐

  1. P2P原理及UDP穿透简单说明(转)

    源: P2P原理及UDP穿透简单说明

  2. Maven笔记 #01# 入门

    索引 Maven是干什么的? 用Maven的好处 Maven与命令行 Maven与IntelliJ IDEA 一.Maven是干什么的? 我相信只要你写过足够多的代码,就... 肯定有思考过写一个脚本 ...

  3. bzoj 3083

    bzoj 3083 树链剖分,换根 对于一颗树有以下操作 1.确定x为根,2.将u到v的简单路径上的数全改成c,3.询问当前以x为根的子树中的节点最小权值. 如果没有操作1:树链剖分很明显. 于是考虑 ...

  4. Solr基本操作

    /update 使用/update进行索引维护,进入Solr管理界面SolrCore下的Document下: 我们进行更新操作可以用json和xml多种格式,这里以xml格式为例说明.先来看看界面上的 ...

  5. Machine Learning - Andrew Ng - Coursera

    Machine Learning - Andrew Ng - Coursera Contents 1 Notes 1 Notes What is Machine Learning? Two defin ...

  6. 零基础Python爬虫实现(爬取最新电影排行)

    提示:本学习来自Ehco前辈的文章, 经过实现得出的笔记. 目标网站 http://dianying.2345.com/top/ 网站结构 要爬的部分,在ul标签下(包括li标签), 大致来说迭代li ...

  7. Codeforces 235C Cyclical Quest - 后缀自动机

    Some days ago, WJMZBMR learned how to answer the query "how many times does a string x occur in ...

  8. 0x17二叉堆之超市

    题目链接:https://www.acwing.com/problem/content/147/ 容易想到一个贪心策略:在最优解中,对于每个时间(天数) t,应该在保证不卖出过期商品的前提下,尽量卖出 ...

  9. Python 用pygame模块播放MP3

    安装pygame(这个是python3,32位的) pip安装这个whl文件 装完就直接跑代码啦,很短的 import time import pygame file=r'C:\Users\chan\ ...

  10. 关于scrapy 使用代理相关问题

    在scrapy中使用代理时,我们不能保证每个代理都可用,难免出现代理ip错误的情况,如果代理ip出现错误设置一个请求超时和重新发送这个链接 在yield scrapy.Request时候加上一个参数: ...