生活随笔
收集整理的這篇文章主要介紹了
java面试题10 牛客:以下可以正确获取结果集的有
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
以下可以正確獲取結果集的有
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之間的關系和區別. ?? ?關系: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類型的21ps.setString(2,"suwu150");//代表設置給第二個?號位置的值為String類型的suwu150java.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();}}}
}
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();}}}
}
答案A,D 我是歌謠,期待和你一起成長
文章僅個人理解,來在各大網站。如有不合理之處,歡迎吐槽。
閱讀目錄(置頂)(長期更新計算機領域知識)https://blog.csdn.net/weixin_43392489/article/details/102380691
閱讀目錄(置頂)(長期更新計算機領域知識)https://blog.csdn.net/weixin_43392489/article/details/102380882
閱讀目錄(置頂)(長期科技領域知識)https://blog.csdn.net/weixin_43392489/article/details/102600114
歌謠帶你看java面試題 https://blog.csdn.net/weixin_43392489/article/details/102675944
總結
以上是生活随笔 為你收集整理的java面试题10 牛客:以下可以正确获取结果集的有 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。