电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

java中Statement 與 PreparedStatement接口之間的關系和區別

瀏覽:4日期:2022-08-28 17:17:10

Statement 和 PreparedStatement之間的關系和區別.

關系:PreparedStatement繼承自Statement,都是接口 區別:PreparedStatement可以使用占位符,是預編譯的,批處理比Statement效率高

詳解:

1、PreparedStatement:表示預編譯的 SQL 語句的對象。

接口:public interface PreparedStatement extends Statement之間的繼承關系 SQL 語句被預編譯并存儲在 PreparedStatement 對象中。然后可以使用此對象多次高效地執行該語句。 注:用于設置 IN 參數值的設置方法(setShort、setString 等等)必須指定與輸入參數的已定義 SQL 類型兼容的類型。例如,如果 IN 參數具有 SQL 類型 INTEGER,那么應該使用 setInt 方法,問號的位置也是應該注意的,因為第一個問好的位置為1,第二個問號的位置為2.以此類推。 如果需要任意參數類型轉換,使用 setObject 方法時應該將目標 SQL 類型作為其參數。 在以下設置參數的示例中,con 表示一個活動連接: PreparedStatement pstmt = con.prepareStatement('UPDATE EMPLOYEES SALARY = ? WHERE ID = ?'); pstmt.setBigDecimal(1, 1533.00) pstmt.setInt(2, 1102) pstmt.execute()//注意提交時這里不能再有sql語句,不同于Statment

演示代碼:

import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;import java.sql.Statement;public class PreparedStatementTest {public static void main(String[] args) {test_autoCommit();}public static void test_autoCommit(){String driver='oracle.jdbc.driver.OracleDriver';String url='jdbc:oracle:thin:@127.0.0.1:1521:orcl';String user='briup';String password='briup';Connection conn=null;PreparedStatement ps=null;try {//1、注冊驅動Class.forName(driver);//2、獲取連接 conn= DriverManager.getConnection(url, user, password); //System.out.println(conn);//3、創建prepareStatement對象 String sql='insert into lover values(?,?,?)'; ps=conn.prepareStatement(sql); //4、執行sql語句 ps.setInt(1,21);//代表設置給第一個?號位置的值為Int類型的21 ps.setString(2,'suwu150');//代表設置給第二個?號位置的值為String類型的suwu150 java.util.Date utilDate=new java.util.Date();//進行類型轉換,由util類型的date轉化為sql類型的 ps.setDate(3, new java.sql.Date(utilDate.getTime())); //ps.execute();//執行 System.out.println(ps.execute());//執行表輸出返回的結果,結果為false,因為沒有返回的結果集 //5、處理結果集} catch (Exception e) {e.printStackTrace();}finally{//6、關閉資源try {if(ps!=null)ps.close();} catch (SQLException e) {e.printStackTrace();}try {if(conn!=null)conn.close();} catch (SQLException e) {e.printStackTrace();}}}}

插入之后的結果

java中Statement 與 PreparedStatement接口之間的關系和區別

2、Statement:用于執行靜態 SQL 語句并返回它所生成結果的對象。

接口:public interface Statement extends Wrapper在默認情況下,同一時間每個 Statement 對象只能打開一個 ResultSet 對象。因此,如果讀取一個 ResultSet 對象與另一個交叉,則這兩個對象必須是由不同的 Statement 對象生成的。如果存在某個語句的打開的當前 ResultSet 對象,則 Statement 接口中的所有執行方法都會隱式關閉它。 如以下操作:創建statement對象 Statement stat=conn.createStatement(); String sql='insert into lover values(6,’suxingxing’,to_date(’21-9-2016’,’dd-mm-yyyy’))'; stat.execute(sql);//這里提交時應該有sql語句,不同于PreparedStatment來看一下實際使用吧:

import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class StatementTest {public static void main(String[] args) {test_autoCommit();}public static void test_autoCommit() { String driver='oracle.jdbc.driver.OracleDriver'; String url='jdbc:oracle:thin:@127.0.0.1:1521:orcl'; String user='briup'; String password='briup'; Connection conn=null; Statement stat=null; try { //1、注冊驅動 Class.forName(driver); //2、獲取連接 conn= DriverManager.getConnection(url, user, password); conn.setAutoCommit(false); //System.out.println(conn); //3、創建statement對象 stat=conn.createStatement(); //4、執行sql語句 String sql='insert into lover values(22,’suxingxing’,to_date(’21-9-2016’,’dd-mm-yyyy’))'; //注意格式 // stat.execute(sql); System.out.println(stat.execute(sql)); //返回值為false,因為同樣沒有ResultSet返回集 conn.commit(); //5、處理結果集 } catch (Exception e) { e.printStackTrace(); try { conn.rollback(); } catch (SQLException e1) { e1.printStackTrace(); } } finally{ //6、關閉資源 try { if(stat!=null)stat.close(); } catch (SQLException e) { e.printStackTrace(); } try { if(conn!=null)conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }}

插入之后的結果:

java中Statement 與 PreparedStatement接口之間的關系和區別

到此這篇關于java中Statement 與 PreparedStatement接口之間的關系和區別的文章就介紹到這了,更多相關Statement 與 PreparedStatement接口內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 订做不锈钢_不锈钢定做加工厂_不锈钢非标定制-重庆侨峰金属加工厂 | 电磁流量计_智能防腐防爆管道式计量表-金湖凯铭仪表有限公司 | 上海盐水喷雾试验机_两厢式冷热冲击试验箱-巨怡环试 | 棉服定制/厂家/公司_棉袄订做/价格/费用-北京圣达信棉服 | 搪玻璃冷凝器_厂家-越宏化工设备| 大_小鼠elisa试剂盒-植物_人Elisa试剂盒-PCR荧光定量试剂盒-上海一研生物科技有限公司 | 广州网站建设_小程序开发_番禺网站建设_佛山网站建设_粤联网络 | 奥因-光触媒除甲醛公司-除甲醛加盟公司十大品牌 | 我车网|我关心的汽车资讯_汽车图片_汽车生活! | 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 武汉高温老化房,恒温恒湿试验箱,冷热冲击试验箱-武汉安德信检测设备有限公司 | 高低温万能试验机_拉力试验机_拉伸试验机-馥勒仪器科技(上海)有限公司 | 工业胀紧套_万向节联轴器_链条-规格齐全-型号选购-非标订做-厂家批发价格-上海乙谛精密机械有限公司 | 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | 轴承振动测量仪电箱-轴承测振动仪器-测试仪厂家-杭州居易电气 | 河南空气能热水器-洛阳空气能采暖-洛阳太阳能热水工程-洛阳润达高科空气能商行 | 纳米二氧化硅,白炭黑,阴离子乳化剂-臻丽拾科技 | 多物理场仿真软件_电磁仿真软件_EDA多物理场仿真软件 - 裕兴木兰 | 微水泥_硅藻泥_艺术涂料_艺术漆_艺术漆加盟-青岛泥之韵环保壁材 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | 托利多电子平台秤-高精度接线盒-托利多高精度电子秤|百科 | 纸张环压仪-纸张平滑度仪-杭州纸邦自动化技术有限公司 | RS系列电阻器,RK_RJ启动调整电阻器,RQ_RZ电阻器-上海永上电器有限公司 | 多功能真空滤油机_润滑油全自动滤油机_高效真空滤油机价格-重庆润华通驰 | 水冷散热器_水冷电子散热器_大功率散热器_水冷板散热器厂家-河源市恒光辉散热器有限公司 | 招商帮-一站式网络营销服务|互联网整合营销|网络推广代运营|信息流推广|招商帮企业招商好帮手|搜索营销推广|短视视频营销推广 | 大型低温冷却液循环泵-低温水槽冷阱「厂家品牌」京华仪器_京华仪器 | YAGEO国巨电容|贴片电阻|电容价格|三星代理商-深圳市巨优电子有限公司 | 胜为光纤光缆_光纤跳线_单模尾纤_光纤收发器_ODF光纤配线架厂家直销_北京睿创胜为科技有限公司 - 北京睿创胜为科技有限公司 | 济南品牌包装设计公司_济南VI标志设计公司_山东锐尚文化传播 | MVE振动电机_MVE震动电机_MVE卧式振打电机-河南新乡德诚生产厂家 | 北京银联移动POS机办理_收银POS机_智能pos机_刷卡机_收银系统_个人POS机-谷骐科技【官网】 | 北京翻译公司_同传翻译_字幕翻译_合同翻译_英语陪同翻译_影视翻译_翻译盖章-译铭信息 | 交变/复合盐雾试验箱-高低温冲击试验箱_安奈设备产品供应杭州/江苏南京/安徽马鞍山合肥等全国各地 | 越南专线物流_东莞国际物流_东南亚专线物流_行通物流 | 自动部分收集器,进口无油隔膜真空泵,SPME固相微萃取头-上海楚定分析仪器有限公司 | 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 无锡门窗-系统门窗-阳光房-封阳台-断桥铝门窗厂[窗致美] | 广州中央空调回收,二手中央空调回收,旧空调回收,制冷设备回收,冷气机组回收公司-广州益夫制冷设备回收公司 | 小型手持气象站-空气负氧离子监测站-多要素微气象传感器-山东天合环境科技有限公司 | 阜阳在线-阜阳综合门户 | 东莞猎头公司_深圳猎头公司_广州猎头公司-广东万诚猎头提供企业中高端人才招聘服务 |