JDBC学习笔记(SQL语句的执行)
在获得数据库连接后,紧接着就是执行SQL语句。这里用到俩个类:Statement和PreparedStatement
一、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语句的执行)相关推荐
- web安全学习笔记--sql语句(sql注入基础上)
一.基础知和表内操作语法 1.sql语句对大小写不敏感!!! SELECT - 从数据库表中获取数据:select * from (columns/tables/databases); UPDATE ...
- JDBC学习笔记03【JDBC事务管理、数据库连接池、JDBCTemplate】
黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...
- JDBC学习笔记02【ResultSet类详解、JDBC登录案例练习、PreparedStatement类详解】
黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...
- JDBC学习笔记01【JDBC快速入门、JDBC各个类详解、JDBC之CRUD练习】
黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...
- JDBC 学习笔记(一)—— 基础知识 + 分页技术
2019独角兽企业重金招聘Python工程师标准>>> 本文查阅方法: 1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题 2.快捷"查找" ...
- JDBC学习笔记——Java语言与数据库的鹊桥
JDBC学习笔记--Java语言与数据库的鹊桥 JDBC(Java DataBase Connectivity):SUN公司提供的 一套操作数据库的标准规范,说白了就是用Java语言来操作数据 ...
- JDBC学习笔记(1)---B站尚硅谷宋红康
JDBC学习笔记(1)-B站尚硅谷宋红康 JDBC学习笔记(2)-B站尚硅谷宋红康 文章目录 软件架构方式介绍 JavaWeb技术概览 第1章:JDBC概述 1.1 数据的持久化 1.2 Java中的 ...
- JDBC 学习笔记 day02 用 PreparedStatement 实现 CRUD 操作
JDBC 学习笔记 day02 PreparedStatement 相比于 Statement 的好处 PreparedStatement 实现 增,删,改 操作 PreparedStatement ...
- JDBC学习笔记(六)
JDBC学习笔记(六) Thinkersky[Email:yanghuangming@rongji.com] 关于婚姻与爱情,一组5至10岁的美国小孩给出了他们的答案.也许听起来傻傻的,但是谁能说小娃 ...
- JSP、Servlet、JDBC学习笔记
WEB的学习 * 服务器 * 网络的架构(面试题) * C/S client/server 客户端/服务器端 例子:QQ 快播 暴风影音 * 优点:交互性好,服务器压力小. * 缺点:客户端更新了,下 ...
最新文章
- 系统带你学习 WebAPIs 第二讲
- 【转载】负数的二进制
- LeetCode 323. 无向图中连通分量的数目(并查集)
- (39)FPGA按键设计(第8天)
- jquery+css实现菜单收缩效果并适应多种浏览器与移动平台
- php在类里如何调用call_user_func_array《细说php2》
- jsp实验报告(一)
- jsp在校大学生助学贷款管理系统
- 开源磁盘加密软件VeraCrypt教程
- Java300StudyNote(7)-Java各版本JavaSE、JavaEE、JavaME
- 美国地质勘探局官网(USGS)Landsat 8 OLI_TIRS 影像数据下载详解
- PHP解决某些特殊汉字符或汉字转码后成乱码或者空白的问题
- 给oracle数据库现有表添加字段
- 游戏王-黑暗大魔法师发动教程
- 【word】常用数学符号、数学表达式的快捷键(持更)
- 古月居ROS入门21讲笔记
- http协议常见错误状态码(400,404,500等).
- 【安全狗漏洞通告】Gitlab 硬编码漏洞解决方案
- sdkman使用教程
- s_gets()函数解析
热门文章
- 微信小程序怎么添加到主屏幕将微信小程序放到手机桌面?
- 2017年下半年阅读书单
- manjaro双屏显示
- 有符号数和无符号数在计算机中怎么区分?
- TP6 自定义404,错误提示页面
- HTTP 错误 404.3 – Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
- inter uhd graphics630显卡驱动_Intel新驱动已支持Win10 H2更新、11代酷睿狂喜
- 运行Ubuntu的HP笔记本合上盖子不休眠也不断网
- “网上下单”生活神技能,寄快递在线下单、查快递实时物流信息
- 婆媳兵法之——短兵相接15天