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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424739.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

目标检测近5年发展历程概述(转)

目标检测近5年发展历程概述&#xff0c;从R-CNN到RFBNet&#xff08;2013--2018&#xff09;&#xff08;转&#xff09; 2018年09月24日 12:32:02 C小C 【时间】2018.09.24 【题目】目标检测近5年发展历程概述&#xff0c;从R-CNN到RFBNet&#xff08;2013--2018&#xff09; …

[Leetcode][第39题][JAVA][组合总和][回溯][dfs][剪枝]

【问题描述】[中等] 【解答思路】 1. 回溯 import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Deque; import java.util.List;public class Solution {public List<List<Integer>> combinationSum(int[] candidates, int target) {int …

第十二期:七种优秀的浏览器兼容性测试工具

本文向您介绍目前最为流行的、面向开发人员的七大浏览器兼容性测试工具。 作者&#xff1a;陈峻 在许多谈及网站或Web应用开发的场合&#xff0c;开发人员最为关心的莫过于跨浏览器的兼容性问题。如您所知&#xff0c;诸如&#xff1a;计划、设计、测试等大多数工作都可以在网…

Depth-first Search深度优先搜索专题7

834 Sum of Distances in Tree 思路&#xff1a;一颗无向的树有N个节点&#xff0c;分别标记为0,1,2,…N-1&#xff0c;有若干条边。结果返回每个节点到其他节点的路径和。 以上面这棵树为例。从节点0到其他点的路径查找过程是&#xff1a;节点0有两条边分别到达子节点1和子节…

查看虚拟机网卡命令

查看虚拟机网卡命令&#xff1a; dhclient转载于:https://www.cnblogs.com/xiaoshen666/p/10898404.html

[Leetcode][第216题][JAVA][数组之和3][回溯]

【问题描述】[中等] 【解答思路】 回溯 剪树枝 当和超过n 或 个数超过k 1. 正向求和 优化前 class Solution {public List<List<Integer>> ans new LinkedList();public List<List<Integer>> combinationSum3(int k, int n) {dfs(0,k,0,n,1,new L…

第十三期:你不想错过的那些JSON工具

网上有许多出色的免费工具用于JSON格式化、验证、编辑以及转换成其他格式&#xff0c;可供开发人员选择。 作者&#xff1a;布加迪 JSON(JavaScript对象标注)是一种流行的轻量级数据交换格式&#xff0c;在网络上已很常见。 众所周知&#xff0c;JSON让开发人员易于使用&#…

java jvm学习

在并发编程中&#xff0c;多个线程之间采取什么机制进行通信&#xff08;信息交换&#xff09;&#xff0c;什么机制进行数据的同步&#xff1f; 在Java语言中&#xff0c;采用的是共享内存模型来实现多线程之间的信息交换和数据同步的。 线程之间通过共享程序公共的状态&#…

Breadth-first Search(广度优先搜索)专题1

广度优先搜索的定义 广度优先搜索BFS类似于树的层次遍历算法。基本思想是&#xff1a;首先访问顶点v&#xff0c;然后由v出发&#xff0c;依次访问v的各个未被访问过的顶点w1,w2,w3…wn。然后再访问wi(wi是w1,w2,w3…wn中的一个)未被访问过的邻接点。以此类推&#xff0c;直到所…

[Leetcode][第40题][JAVA][数组总和2][回溯][剪枝]

【问题描述】[中等] 【解答思路】 1. 减法 import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Arrays; import java.util.Deque; import java.util.List;public class Solution {public List<List<Integer>> combinationSum2(int[] can…

java面试题11 牛客:如下语句通过算术运算和逻辑运算之后i和 j的结果是

如下语句通过算术运算和逻辑运算之后i和 j的结果是&#xff08; &#xff09; 1 2 3 4 5 6 int i0; int j0; if((i>0)||(j>0)) { //打印出i和j的值。 } A i0;j0 B i1;j1 C i0;j1 D i1;j0 懵逼树下懵逼果&#xff0c;懵逼树前你和我 逻辑运算符(Java中)有四类&…

Breadth-first Search(广度优先搜索)专题2

743. Network Delay Time 输入&#xff1a;int[][] times times[i] new int[]{v,u,w} 表示从节点v到节点u需要时间w。注意这里是有向图。    int N 节点总数。    int k 起始节点 输出&#xff1a;从节点k到其他各个节点的最短路径和。如果有一个节点不能达到则返回-1。 …

负载均衡—几种常见算法

什么是负载均衡&#xff1f; 当一台服务器的性能达到极限时&#xff0c;我们可以使用服务器集群来提高网站的整体性能。那么&#xff0c;在服务器集群中&#xff0c;需要有一台服务器充当调度者的角色&#xff0c;用户的所有请求都会首先由它接收&#xff0c;调度者再根据每台服…

[Leetcode][第79题][JAVA][单词搜索][DFS][回溯]

【问题描述】[中等] 【解答思路】 1. DFS繁琐版本 class Solution {public boolean exist(char[][] board, String word) {boolean flag false;int row board.length;int col board[0].length;boolean[][] used new boolean[row][col];for (int i 0; i <row ; i) {for …

java:彻底搞懂volatile关键字

对于volatile这个关键字&#xff0c;相信很多朋友都听说过&#xff0c;甚至使用过&#xff0c;这个关键字虽然字面上理解起来比较简单&#xff0c;但是要用好起来却不是一件容易的事。 这篇文章将从多个方面来讲解volatile&#xff0c;让你对它更加理解。 计算机中为什么会出现…

铃铛计数问题 解题报告

U72118 铃铛计数问题 对点我们发现有两种编号&#xff0c;一种是它本身的编号用作询问&#xff0c;一种是便于我们子树/链的操作的重新编号。 如果对链树剖作为第二编号&#xff0c;把点放到二维平面内&#xff0c;我们就可以用个kd-tree维护&#xff0c;需要支持一些加和询问之…

【Breadth-first Search 】513. Find Bottom Left Tree Value

输入&#xff1a;一颗二叉树 输出&#xff1a;这颗树的最下面一层最左边的节点值。 分析&#xff1a; 用BFS的思路解决最直观。读每一层&#xff0c;在每一层记录第一个元素的值。在队列中第一层&#xff1a;1&#xff1b;第二层&#xff1a;2&#xff0c;3&#xff1b;第三层…

Java:这是一份全面 详细的 Synchronized关键字 学习指南

前言 在Java中&#xff0c;有一个常被忽略 但 非常重要的关键字Synchronized今天&#xff0c;我将详细讲解 Java关键字Synchronized的所有知识&#xff0c;希望你们会喜欢目录 1. 定义 Java中的1个关键字 2. 作用 保证同一时刻最多只有1个线程执行 被Synchronized修饰的方法…

[Leetcode][第404题][JAVA][左叶子之和][DFS][BFS]

【问题描述】[简单] 【解答思路】 1. DFS 递进思想 一步一步递进 /先序遍历求所有节点值之和 public int sumOfTrees(TreeNode root) {if (root null) {return 0;}int leave root.val;int left sumOfTrees(root.left);int right sumOfTrees(root.right);return left ri…

01背包、完全背包、多重背包

参考&#xff08;都有些错误&#xff09;&#xff1a;https://github.com/guanjunjian/Interview-Summary/blob/master/notes/algorithms/%E7%BB%8F%E5%85%B8%E7%AE%97%E6%B3%95/01%E8%83%8C%E5%8C%85.mdhttps://blog.csdn.net/na_beginning/article/details/62884939 #include…