jdbc数据库连接在方法中,而且要返回statement 或resultset 在方法里关闭连接会怎么样?要怎么处理?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jdbc数据库连接在方法中,而且要返回statement 或resultset 在方法里关闭连接会怎么样?要怎么处理?相关的知识,希望对你有一定的参考价值。

如果要返回statement 或者resultset 就不能关闭连接,关了的话作为返回值被传出去的statement 或者resultset 被访问到的时候就会抛出异常。连接不关不会被有异常,但程序被多次执行后就有连接被占满,不能取得连接的问题出现。
一般需要用到rs的数据,应在取得rs后,把里边的数据从新包装后返回,比如返回集合类或者bean类。在包装完成后关闭rs,state,conn。这样没问题
参考技术A 关闭链接statement 或resultset也关闭了,可以把数据存到list或bean中返回List或者bean。 参考技术B 写一个封装类,专门用来关闭connect,statement,resultset..先判断是否为空,不为空就关闭。记住要先关闭resultset,statement,connect.....以后要用到关闭的时候再调用这个方法。。

第一个jdbc

1. jdbc就是java提供连接数据库的规范。在java中就是一套接口。
实现这套接口的这套类就是数据库驱动,用数据库驱动才能连接数据库。

2. Junit是为了方便测试的技术手段,在测试时,一个类中只能有一个main方法。一个可以在一
在类中写一个方法,必须是public,返回值必须是void,方法一定不能穿参数,然后再方法上面加一个备注。

3.在导包的时候最好应该倒入java.sql.Connection,而不是com.mysql.jdbc.Connection。如果项目最开始时用的mysql,后来想换oracle,项目驱动就要换了,而代码里都用的是jdbc.mysql给出来的引用,就意味着换了数据库,驱动就要换,然后这些类也要换,这样就需要改大量的代码。
而如果你用接口来接受,不管你换什么库,用接口接收,就不需要改了。
4.原理图:


5.代码:

package com.sjx.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

import org.junit.Test;

public class Demo {
    @Test
    //发送插入语句
    public void fun1() throws Exception{
        //1 导入驱动类库
        //2 注册驱动
        DriverManager.registerDriver(new com.mysql.jdbc.Driver()); 
        //3 连接数据库
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day05", "root", "1234");
        //4 操作数据库
        Statement st = conn.createStatement();
        String sql = "select * from t_user";
        ResultSet rs = st.executeQuery(sql);
         //excute 原始,,增删改查都可以,返回值 true->查询由结果集  false->查询没有结果集
    //executeBatch 批量执行sql
     //executeUpdate  执行增删改
     //executeQuery  执行查询
     
     /*遍历结果集中的内容并打印*/
     while(rs.next()){
        String name = rs.geetString("name");
        int id = rs.getInt("id");
        int age = rs.getInt("age");
        system.out.println(name+"==>"+age+"==>"+id);
     }
      //5 关闭资源
     st.close(); conn.close(); } }

 

以上是关于jdbc数据库连接在方法中,而且要返回statement 或resultset 在方法里关闭连接会怎么样?要怎么处理?的主要内容,如果未能解决你的问题,请参考以下文章

Java学习笔记8.1.2 初探JDBC - JDBC编程步骤

Java学习笔记8.1.2 初探JDBC - JDBC编程步骤

JDBC完美连接方法

如何从jdbc连接中的方法返回结果集

jdbc如何在嵌套查询中处理连接的关闭问题

Java数据库编程