日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java面试题10 牛客:以下可以正确获取结果集的有

發(fā)布時(shí)間:2023/12/10 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java面试题10 牛客:以下可以正确获取结果集的有 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

以下可以正確獲取結(jié)果集的有

A Statement sta=con.createStatement();<br>ResultSet rst=sta.executeQuery(“select * from book”); B Statement sta=con.createStatement(“select * from book”); ResultSet rst=sta.executeQuery(); C PreparedStatement pst=con.prepareStatement(); ResultSet rst=pst.executeQuery(“select * from book”); D PreparedStatement pst=con.prepareStatement(“select * from book”); ResultSet rst=pst.executeQuery();

又是一臉懵逼的我

Statement 和 PreparedStatement之間的關(guān)系和區(qū)別.
?? ?關(guān)系:PreparedStatement繼承自Statement,都是接口
?? ?區(qū)別:PreparedStatement可以使用占位符,是預(yù)編譯的,批處理比Statement效率高????
詳解:
1、PreparedStatement:表示預(yù)編譯的 SQL 語(yǔ)句的對(duì)象。
?? 接口:public interface PreparedStatement extends Statement之間的繼承關(guān)系
?? SQL 語(yǔ)句被預(yù)編譯并存儲(chǔ)在 PreparedStatement 對(duì)象中。然后可以使用此對(duì)象多次高效地執(zhí)行該語(yǔ)句。
?? 注:用于設(shè)置 IN 參數(shù)值的設(shè)置方法(setShort、setString 等等)必須指定與輸入?yún)?shù)的已定義 SQL 類型兼容的類型。例如,如果 IN 參數(shù)具有 SQL 類型 INTEGER,那么應(yīng)該使用 setInt 方法,問(wèn)號(hào)的位置也是應(yīng)該注意的,因?yàn)榈谝粋€(gè)問(wèn)好的位置為1,第二個(gè)問(wèn)號(hào)的位置為2.以此類推。
?? 如果需要任意參數(shù)類型轉(zhuǎn)換,使用 setObject 方法時(shí)應(yīng)該將目標(biāo) SQL 類型作為其參數(shù)。
?? 在以下設(shè)置參數(shù)的示例中,con 表示一個(gè)活動(dòng)連接:
?????????????

PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES SALARY = ? WHERE ID = ?");pstmt.setBigDecimal(1, 1533.00)pstmt.setInt(2, 1102)pstmt.execute()//注意提交時(shí)這里不能再有sql語(yǔ)句,不同于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、注冊(cè)驅(qū)動(dòng)Class.forName(driver);//2、獲取連接conn= DriverManager.getConnection(url, user, password);//System.out.println(conn);//3、創(chuàng)建prepareStatement對(duì)象String sql="insert into lover values(?,?,?)";ps=conn.prepareStatement(sql);//4、執(zhí)行sql語(yǔ)句ps.setInt(1,21);//代表設(shè)置給第一個(gè)?號(hào)位置的值為Int類型的21ps.setString(2,"suwu150");//代表設(shè)置給第二個(gè)?號(hào)位置的值為String類型的suwu150java.util.Date utilDate=new java.util.Date();//進(jìn)行類型轉(zhuǎn)換,由util類型的date轉(zhuǎn)化為sql類型的ps.setDate(3, new java.sql.Date(utilDate.getTime()));//ps.execute();//執(zhí)行System.out.println(ps.execute());//執(zhí)行表輸出返回的結(jié)果,結(jié)果為false,因?yàn)闆](méi)有返回的結(jié)果集//5、處理結(jié)果集} catch (Exception e) {e.printStackTrace();}finally{//6、關(guān)閉資源try {if(ps!=null)ps.close();} catch (SQLException e) {e.printStackTrace();}try {if(conn!=null)conn.close();} catch (SQLException e) {e.printStackTrace();}}} }

2、Statement:用于執(zhí)行靜態(tài) SQL 語(yǔ)句并返回它所生成結(jié)果的對(duì)象。
?? 接口:public interface Statement extends Wrapper
在默認(rèn)情況下,同一時(shí)間每個(gè) Statement 對(duì)象只能打開(kāi)一個(gè) ResultSet 對(duì)象。因此,如果讀取一個(gè) ResultSet 對(duì)象與另一個(gè)交叉,則這兩個(gè)對(duì)象必須是由不同的 Statement 對(duì)象生成的。如果存在某個(gè)語(yǔ)句的打開(kāi)的當(dāng)前 ResultSet 對(duì)象,則 Statement 接口中的所有執(zhí)行方法都會(huì)隱式關(guān)閉它。 ?
?? 如以下操作:創(chuàng)建statement對(duì)象
?? ??????

Statement stat=conn.createStatement();String sql="insert into lover values(6,'suxingxing',to_date('21-9-2016','dd-mm-yyyy'))";stat.execute(sql);//這里提交時(shí)應(yīng)該有sql語(yǔ)句,不同于PreparedStatment


來(lái)看一下實(shí)際使用吧:?

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、注冊(cè)驅(qū)動(dòng)Class.forName(driver);//2、獲取連接conn= DriverManager.getConnection(url, user, password);conn.setAutoCommit(false);//System.out.println(conn);//3、創(chuàng)建statement對(duì)象stat=conn.createStatement();//4、執(zhí)行sql語(yǔ)句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,因?yàn)橥瑯記](méi)有ResultSet返回集conn.commit();//5、處理結(jié)果集} catch (Exception e) {e.printStackTrace();try {conn.rollback();} catch (SQLException e1) {e1.printStackTrace();}}finally{//6、關(guān)閉資源try {if(stat!=null)stat.close();} catch (SQLException e) {e.printStackTrace();}try {if(conn!=null)conn.close();} catch (SQLException e) {e.printStackTrace();}}} }

答案A,D 我是歌謠,期待和你一起成長(zhǎng)

文章僅個(gè)人理解,來(lái)在各大網(wǎng)站。如有不合理之處,歡迎吐槽。

閱讀目錄(置頂)(長(zhǎng)期更新計(jì)算機(jī)領(lǐng)域知識(shí))https://blog.csdn.net/weixin_43392489/article/details/102380691

閱讀目錄(置頂)(長(zhǎng)期更新計(jì)算機(jī)領(lǐng)域知識(shí))https://blog.csdn.net/weixin_43392489/article/details/102380882

閱讀目錄(置頂)(長(zhǎng)期科技領(lǐng)域知識(shí))https://blog.csdn.net/weixin_43392489/article/details/102600114

歌謠帶你看java面試題 https://blog.csdn.net/weixin_43392489/article/details/102675944

總結(jié)

以上是生活随笔為你收集整理的java面试题10 牛客:以下可以正确获取结果集的有的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。