在获得数据库连接后,紧接着就是执行SQL语句。这里用到俩个类:StatementPreparedStatement

一、Statment

Statement提供了以下方法用来执行SQL语句:

 * executeQuery(String sql):执行一条SQL查询语句,返回查询结果对象(ResultSet)
 * executeUpdate(String sql):执行一条SQL更新,插入,删除操作语句。

 * execute(String sql):执行一条SQL语句

 *close():关闭Statement。和Connection一样,Statement使用后也需要关闭。

*注意:Statement通过connection的createStatement方法获得。

以下为执行SQL语句示例:

    Statement statement=connection.createStatement();String sql="insert into table_01 values('呵呵',1,'男'),('哈哈',2,'女'),('嘿嘿',3,'男')";statement.executeUpdate(sql);sql="delete from table_01 where id=3";statement.executeUpdate(sql);sql="update table_01 set id=3,name='hh' where id=2";statement.executeUpdate(sql);//使用后一定要关闭connection.close();statement.close();

二、PreparedStatement

ProparedStatement:是Statement的子接口,同样用来执行SQL语句,比Statement书写方便
 ProparedStatement的优点:
 * 1、书写方便,先写好SQL语句再设置参数。如:INSERT INTO table VALUES(?,?,?...),不用拼写SQL语句

* 2、防止SQL注入(这点很重要)

* 注意:在开始就赋入sql语句(此时的sql语句可以设置未知参数,通过?设置),后通过SetObject(int index,Object obj)设置sql语句里的参数,索引从1开始

PreparedStatement提供了三个方法:

        setXxx():设置SQL语句里的参数,Xxx为参数的类型

        executeUpdate():参数设置完毕后,执行插入、删除、更新的sql语句。

        executeQuery():参数设置完毕后,执行查询的sql语句,返回结果对象(ResultSet)

以下为使用示例:

    String sql="insert into table_01 values(?,?,?)";PreparedStatement preparedstatement=connection.prepareStatement(sql); //需要提前设置好SQL语句//设置SQL里的参数(索引从1开始)preparedstatement.setString(1,"张天笑");preparedstatement.setInt(2,2);preparedstatement.setString(3,"女");//直接executeUpdate()方法,不用传入SQL语句preparedstatement.executeUpdate();

不要求掌握知识:即在插入时获得主键

//获得主键
String sql="INSERT INTO table_01(name,sex) VALUES(?,?)";
Connection connection=JDBCTools.getConnection();
//设置好PreparedStatement是返回主键类型PreparedStatement preparedstatement=connection.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);preparedstatement.setObject(1,"王富贵");
preparedstatement.setObject(2, "男");
preparedstatement.executeUpdate();ResultSet resultset=preparedstatement.getGeneratedKeys();
ResultSetMetaData resultsetmetadata=resultset.getMetaData();
System.out.println(resultsetmetadata.getColumnName(1));
while(resultset.next()) {
System.out.println(resultset.getObject(1));
}
JDBCTools.release(connection, preparedstatement,resultset);

转载于:https://www.cnblogs.com/MrQlyn/p/10236349.html

JDBC学习笔记(SQL语句的执行)相关推荐

  1. web安全学习笔记--sql语句(sql注入基础上)

    一.基础知和表内操作语法 1.sql语句对大小写不敏感!!! SELECT - 从数据库表中获取数据:select * from (columns/tables/databases); UPDATE ...

  2. JDBC学习笔记03【JDBC事务管理、数据库连接池、JDBCTemplate】

    黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...

  3. JDBC学习笔记02【ResultSet类详解、JDBC登录案例练习、PreparedStatement类详解】

    黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...

  4. JDBC学习笔记01【JDBC快速入门、JDBC各个类详解、JDBC之CRUD练习】

    黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...

  5. JDBC 学习笔记(一)—— 基础知识 + 分页技术

    2019独角兽企业重金招聘Python工程师标准>>> 本文查阅方法:     1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题     2.快捷"查找" ...

  6. JDBC学习笔记——Java语言与数据库的鹊桥

    JDBC学习笔记--Java语言与数据库的鹊桥     JDBC(Java DataBase Connectivity):SUN公司提供的 一套操作数据库的标准规范,说白了就是用Java语言来操作数据 ...

  7. JDBC学习笔记(1)---B站尚硅谷宋红康

    JDBC学习笔记(1)-B站尚硅谷宋红康 JDBC学习笔记(2)-B站尚硅谷宋红康 文章目录 软件架构方式介绍 JavaWeb技术概览 第1章:JDBC概述 1.1 数据的持久化 1.2 Java中的 ...

  8. JDBC 学习笔记 day02 用 PreparedStatement 实现 CRUD 操作

    JDBC 学习笔记 day02 PreparedStatement 相比于 Statement 的好处 PreparedStatement 实现 增,删,改 操作 PreparedStatement ...

  9. JDBC学习笔记(六)

    JDBC学习笔记(六) Thinkersky[Email:yanghuangming@rongji.com] 关于婚姻与爱情,一组5至10岁的美国小孩给出了他们的答案.也许听起来傻傻的,但是谁能说小娃 ...

  10. JSP、Servlet、JDBC学习笔记

    WEB的学习 * 服务器 * 网络的架构(面试题) * C/S client/server 客户端/服务器端 例子:QQ 快播 暴风影音 * 优点:交互性好,服务器压力小. * 缺点:客户端更新了,下 ...

最新文章

  1. 系统带你学习 WebAPIs 第二讲
  2. 【转载】负数的二进制
  3. LeetCode 323. 无向图中连通分量的数目(并查集)
  4. (39)FPGA按键设计(第8天)
  5. jquery+css实现菜单收缩效果并适应多种浏览器与移动平台
  6. php在类里如何调用call_user_func_array《细说php2》
  7. jsp实验报告(一)
  8. jsp在校大学生助学贷款管理系统
  9. 开源磁盘加密软件VeraCrypt教程
  10. Java300StudyNote(7)-Java各版本JavaSE、JavaEE、JavaME
  11. 美国地质勘探局官网(USGS)Landsat 8 OLI_TIRS 影像数据下载详解
  12. PHP解决某些特殊汉字符或汉字转码后成乱码或者空白的问题
  13. 给oracle数据库现有表添加字段
  14. 游戏王-黑暗大魔法师发动教程
  15. 【word】常用数学符号、数学表达式的快捷键(持更)
  16. 古月居ROS入门21讲笔记
  17. http协议常见错误状态码(400,404,500等).
  18. 【安全狗漏洞通告】Gitlab 硬编码漏洞解决方案
  19. sdkman使用教程
  20. s_gets()函数解析

热门文章

  1. 微信小程序怎么添加到主屏幕将微信小程序放到手机桌面?
  2. 2017年下半年阅读书单
  3. manjaro双屏显示
  4. 有符号数和无符号数在计算机中怎么区分?
  5. TP6 自定义404,错误提示页面
  6. HTTP 错误 404.3 – Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
  7. inter uhd graphics630显卡驱动_Intel新驱动已支持Win10 H2更新、11代酷睿狂喜
  8. 运行Ubuntu的HP笔记本合上盖子不休眠也不断网
  9. “网上下单”生活神技能,寄快递在线下单、查快递实时物流信息
  10. 婆媳兵法之——短兵相接15天