作用:管理指向数据库的连接,如:向数据库发送查询和接收数据库的查询结果都是在它基础上的;完成同数据库的连接的所有任务之后关闭此连接。...对于返回一个结果集的executeQuery()方法,在检索完ResultSet对象的所有行时该语句完成。...对于方法executeUpdate(),当它执行时语句即完成 在少数调用execute()的情况下,只有在检索所有结果集或它生成的更新计数之后语句才完成 关闭Statement对象 Statement...主要方法 ResultSet executeQuery(String sql):返回一个静态的sql查询结果 int executeUpdate(String sql):查询一行sql声明中insert...对于方法executeUpdate(),当它执行时语句即完成 在少数调用execute()的情况下,只有在检索所有结果集或它生成的更新计数之后语句才完成。
使用ResultSet.getXXX()方法来检索的数据结果 6. 清理环境资源 在使用JDBC与数据交互操作数据库中的数据后,应该明确地关闭所有的数据库资源以减少资源的浪费。...在代码中必须显式关闭掉ResultSet,Statement,Connection,如果你用的是连接池的话,连接用完后会放回池里,但是没有关闭的ResultSet和Statement就会造成资源泄漏了。...在finally块中关闭资源,保证即便出了异常也能正常关闭。 大量相似的查询应当使用批处理完成。...rSet = statement.executeQuery(sql); ResultSet pSet = preStatement.executeQuery(); 由上可以看出,PreparedStatement...当生成ResultSet的Statement对象要关闭或者重新执行或是获取下一个ResultSet的时候,ResultSet对象也会自动关闭。
碰到一个场景 ceph集群中有一个机器坏了,一下掉了4块硬盘,考虑到容量的问题,加了一个新机器进去,等待数据同步中,同时对外正常提供服务 第二天发现同步还没有结...
、executeUpdate 和execute ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句 ,返回一个结果集(ResultSet...代码如下: public static ResultSet executeQuery(Statement stmt,String sql){ ResultSet rs = null; try...对象全都关闭,以释放JDBC资源,关闭顺序和声明顺序相反: 关闭记录集 关闭声明 关闭连接对象 代码如下: //关闭结果集 public static void closeRs...executeQuery(Statement stmt,String sql){ ResultSet rs = null; try { rs = stmt.executeQuery(sql...executeQuery(Connection conn,String sql){//重载 ResultSet rs = null; try { rs = conn.createStatement
之后这个事务再次执行了这条查询,返回的结果集中会包含刚插入的那条新数据。这行新数据被称为幻行,而这种现象就叫做幻读。 ...2,Statement的executeQuery(String query)接口用来执行select查询,并且返回ResultSet。即使查询不到记录返回的ResultSet也不会为null。...在查询数据库后会返回一个ResultSet,它就像是查询结果集的一张数据表。 ResultSet对象维护了一个游标,指向当前的数据行。开始的时候这个游标指向的是第一行。...如果调用了ResultSet的next()方法游标会下移一行,如果没有更多的数据了,next()方法会返回false。可以在for循环中用它来遍历数据集。...不过也可以创建可以回滚或者可更新的ResultSet 当生成ResultSet的Statement对象要关闭或者重新执行或是获取下一个ResultSet的时候,ResultSet对象也会自动关闭。
executeQuery(String sql):执行查询操作,数据库在执行查询后会把查询结果,查询结果就是ResultSet;ResultSet对象表示查询结果集,只有在执行查询操作后才会有结果集的产生...(5)发送sql查询语句:ResultSet rs = stmt.executeQuery(sql); 执行查询使用的不是executeUpdate()方法,而是executeQuery()方法。...executeQuery()方法返回的是ResultSet,ResultSet封装了查询结果,我们称之为结果集。...关闭的顺序是先得到的后关闭,后得到的先关闭。...因为在创建PreparedStatement对象时已经让它与一条SQL模板绑定在一起了,所以在调用它的executeQuery()和executeUpdate()方法时就不再需要参数了。
目录 1 重启linux里面oracle的监听 1 重启linux里面oracle的监听 以oracle用户的身份登录虚拟机; 执行 cd $ORACLE_HO...
三个接口完成 4)关闭数据库,在实际开发中数据库资源非常有限,操作完之后必须关闭 二、JDBC的一个类和三个接口 2.1、java.sql.Drivermanager类 :(注册驱动和创建连接...ResultSet executeQuery(String sql) 根据查询语句返回结果集。只能执行select语句。 ... void close() 关闭ResultSet 对象 MySQL数据库中的数据类型和Java中的数据类型对应关系: ? ...*之后的版本中,使用JDBC连接的时候需要该参数。...(); resultSet=statement.executeQuery("show tables"); while(resultSet.next()){
对就是Statement,公开课老师说:“同一条sql语句(字符串都是相同的)在Statement对象中多次执行时,Statement只会对当前sql文编译一次,编译后存储在Statement中,在之后的执行过程中...resultSet = preparedStatement.executeQuery(); //遍历查询结果集 while(resultSet.next...&useServerPrepStmts=true 这样才能保证mysql驱动会先把SQL语句发送给服务器进行预编译,然后在执行executeQuery()时只是把参数发送给服务器。...预编译在比较新的JDBC驱动版本中默认是关闭的,需要配置连接参数才能够打开。...很多主流持久层框架(MyBatis,Hibernate)其实都没有真正的用上预编译,预编译是要我们自己在参数列表上面配置的,如果我们不手动开启,JDBC驱动程序5.0.5以后版本 默认预编译都是关闭的
close()方法:用于关闭数据库连接、PreparedStatement和ResultSet。确保资源正确释放。...executeQuery()方法:执行查询操作的方法,接受SQL语句和可选的参数。该方法会返回ResultSet,在使用后需要手动关闭。...; int ageThreshold = 18; try { ResultSet resultSet = JDBCUtils.executeQuery...然后,通过调用JDBCUtils.executeQuery()方法执行查询,并遍历ResultSet以处理查询结果。最后,我们使用JDBCUtils.close()方法关闭了资源。...资源关闭:确保在使用完ResultSet、Statement、Connection等资源后关闭它们。通常使用try-with-resources或在finally块中关闭资源。
JDBC-防SQL注入 SQL注入 SQL 注入是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的 SQL 语句,在管理员不知情的情况下实现非法操作...resultSet = JdbcUtils.executeQuery(sql); try { if (resultSet.next()) { System.out.println...resultSet = JdbcUtils.executeQuery(sql); try { if (resultSet.next()) {...同时,三种方法 execute、 executeQuery 和 executeUpdate 已被更改以使之不再需要参数。...= preparedStatement.executeQuery(); // 判断是否还有数据 if (resultSet.next()) {
resultSet = preparedStatement.executeQuery(); while (resultSet.next()){ System.out.println...(); resultSet.close(); } 不难看出,上面的jdbc连接和关闭过程基本是固定的,所以可以抽象为一个模板,这样的话,针对于数据库的CRUD操作就不必写过多的冗余代码...,结果集,关闭连接等单独提取出来,编写了查询和修改方法executeQuery,executeUpdate。...resultSet; //查询 protected List executeQuery(String sql , RowMapper rowMapper) throws...= preparedStatement.executeQuery(); List list = resultSet(resultSet, rowMapper);
ResultSet(查询得到结果集) 1.7. 关闭资源(close) 1.8. 关闭顺序 1.9. 异常处理 1.10....resultSet=statement.executeQuery(sql_sselect); while(resultSet.next()){ int id=resultSet.getInt("id...(id+"----"+age+"----"+name); } ResultSet(查询得到结果集) 代表查询语句得到的结果集(executeQuery) 见到resultSet 就用while...resultSet=statement.executeQuery(sql_sselect); //获取结果集 while(resultSet.next()){ int id=resultSet.getInt...会占用内存的资源,所以用完就关闭 关闭ResultSet 因为ResultSet对象中包含查询结果的数据,会占用内存空间 关闭顺序 ResultSet , Statement , Connection
executeQuery(String sql):执行查询操作,数据库在执行查询后会把查询结果,查询结果就是ResultSet; ResultSet对象表示查询结果集,只有在执行查询操作后才会有结果集的产生...4.3 获取Statement 在得到Connectoin之后,说明已经与数据库连接上了,下面是通过Connection获取Statement对象的代码: Statement stmt = con.createStatement...executeQuery()方法返回的是ResultSet,ResultSet封装了查询结果,我们称之为结果集。...关闭的顺序是先得到的后关闭,后得到的先关闭。...因为在创建PreparedStatement对象时已经让它与一条SQL模板绑定在一起了,所以在调用它的executeQuery()和executeUpdate()方法时就不再需要参数了。
三、获取Statement 在得到Connectoin之后,说明已经与数据库连接上了,下面是通过Connection获取Statement对象的代码: Statement stmt = con.createStatement...executeQuery()方法返回的是ResultSet,ResultSet封装了查询结果,我们称之为结果集。...六、读取结果集中的数据 ResultSet就是一张二维的表格,它内部有一个“行光标”,光标默认的位置在“第一行上方”,我们可以调用rs对象的next()方法把“行光标”向下移动一行,当第一次调用next...在ResultSet类中提供了一系列的getXXX()方法,比较常用的方法有: Object getObject(int col) String getString(int col) int getInt...关闭的顺序是先得到的后关闭,后得到的先关闭。
二、JDBC环境的搭建 三、JDBC的开发步骤 1、加载JDBC驱动程序 在程序运行之前,需要将JDBC驱动程序加载到内存中。可以使用Class.forName()方法加载驱动程序。...executeQuery()方法用于执行SELECT语句,返回一个ResultSet对象,而executeUpdate()方法用于执行INSERT、UPDATE和DELETE语句,返回一个整数,表示受影响的行数...ResultSet rs = stmt.executeQuery("SELECT * FROM student"); 5、处理结果集 如果执行的是SELECT语句,那么需要处理返回的结果集。...使用Connection、Statement和ResultSet对象的close()方法关闭连接。...; pstmt.setString(1, "张三"); ResultSet rs = pstmt.executeQuery();
package edu.qdgxy.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet...: " + e.getMessage()); } } //执行查询类的SQL语句,有返回集 public ResultSet executeQuery(String sql) { rs...= null; try { stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE...); rs = stmt.executeQuery(sql); } catch(SQLException e) { System.err.println("Data.executeQuery...: " + e.getMessage()); } return rs; } //关闭对象 public void closeStmt() { try { stmt.close
具体的实现方式: 5、执行SQL语句 Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate 和execute (1)、ResultSet...executeQuery:执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。...(2)、执行查询返回的结果是一个ResultSet对象。 ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问。...使用结果集(ResultSet)对象的访问方法获取数据: 7、关闭JDBC对象 操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声明顺序相反: (1)、...关闭记录集 (2)、关闭声明 (3)、关闭连接对象 我们在完成了上述的步骤之后,基本上就完成了JDBC连接数据库的操作。
最近喜欢上阅读源码来佐证之前的学到的知识,之前读完了Caffeine源码了解到了Caffeine在部分高并发场景可能存在瓶颈的3个点之后。今天又对Java-MySQL的JDBC产生兴趣。...ResulSet资源释放 在 close() 方法注释中,我们得到该方法是为了释放ResulSet对象占用的各种资源。在 Java 中,ResultSet 是用于表示 SQL 查询结果的对象。...ResultSet 对象维护了指向查询结果的光标,可以让你逐行访问查询返回的数据。ResultSet 的 close() 方法用于关闭该 ResultSet 对象,释放资源并释放与数据库的连接。...第二部分是关闭之后对于类成员属性的一些重置。...所以对于 ResultSet 对象来说,下一次调用都会关闭,即使不手动关闭释放资源也是可以接受的。
resultSet = pps.executeQuery(); //查看结果 while (resultSet.next()){ int...ResultSet executeQuery(); --执行select语句. boolean execute(String sql); --仅当执行select并且有结果时才返回true,执行其他的语句返回...关闭的顺序是先得到的后关闭,后得到的先关闭。...ResultSet executeQuery(); --执行select语句. boolean execute(); --执行select返回true 执行其他的语句返回false....执行 并处理结果集 ResultSet rs = pst.executeQuery(); while(rs.next()){ //分别获取各个字段的值 int sid = rs.getInt("sid
领取专属 10元无门槛券
手把手带您无忧上云