第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在java.sql異常關(guān)閉ResultSet后不允許進(jìn)行操作

在java.sql異常關(guān)閉ResultSet后不允許進(jìn)行操作

開心每一天1111 2021-05-09 04:05:19
我正在使用jersey創(chuàng)建簡(jiǎn)單的rest api,在這里我將從數(shù)據(jù)庫中獲取的所有數(shù)據(jù)分配給變量,然后將這些變量數(shù)據(jù)作為列表返回,但出現(xiàn)錯(cuò)誤。我看過其他示例,但我不明白這是怎么回事,這是我所做的:public class UserDAOImpl implements UserDAO{public List<User> readUser() {    List<User> list = new ArrayList();    User u = new User();    try {    System.out.println("inside readuser impl");        Class.forName("com.mysql.jdbc.Driver");        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/userdb", "root", "");        Statement stmt = con.createStatement();        ResultSet rs = stmt.executeQuery("select * from user");        while (rs.next()) {            int id = rs.getInt("id");            String name = rs.getString("name");            String address = rs.getString("address");            u.setId(id);            u.setName(name);            u.setAddress(address);            System.out.println(u);            list.add(u); //adding user object to list            con.close();        }    } catch (Exception e) {        System.out.println(e);    }    return list; //returning to list for json response }}這是我的控制器,在獲取對(duì)象后給出json響應(yīng)@Path("/rest")public class UserController {@GET@Path("/getall")@Produces(MediaType.APPLICATION_JSON)public List<User> getAllUser(){    UserDAO udao = new UserDAOImpl();    return udao.readUser(); }}
查看完整描述

1 回答

?
蠱毒傳說

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊

您將在一次迭代后關(guān)閉連接,這將導(dǎo)致在第二次迭代時(shí)在javasql異常上關(guān)閉ResultSet后不允許操作,將con.close移到循環(huán)外


public class UserDAOImpl implements UserDAO{

 public List<User> readUser() {

   List<User> list = new ArrayList();

   User u = new User();

   try {

        System.out.println("inside readuser impl");

        Class.forName("com.mysql.jdbc.Driver");

        Connection con = 

        DriverManager.getConnection("jdbc:mysql://localhost:3306/userdb", "root", "");

            Statement stmt = con.createStatement();

            ResultSet rs = stmt.executeQuery("select * from user");

            while (rs.next()) {

                int id = rs.getInt("id");

                String name = rs.getString("name");

                String address = rs.getString("address");

                u.setId(id);

                u.setName(name);

                u.setAddress(address);

                System.out.println(u);

                list.add(u); //adding user object to list

            }

        } catch (Exception e) {

            System.out.println(e);

        }

        con.close();

        return list; //returning to list for json response

     }

    }

甚至您可以對(duì)資源使用try它將自動(dòng)關(guān)閉所有資源


 public class UserDAOImpl implements UserDAO{

    public List<User> readUser() {

        List<User> list = new ArrayList();

        User u = new User();

        try( Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/userdb", "root", ""); 

        Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery("select * from user");){

        System.out.println("inside readuser impl");

            while (rs.next()) {

                int id = rs.getInt("id");

                String name = rs.getString("name");

                String address = rs.getString("address");

                u.setId(id);

                u.setName(name);

                u.setAddress(address);

                System.out.println(u);

                list.add(u); //adding user object to list

            }

        } catch (Exception e) {

            System.out.println(e);

        }

        return list; //returning to list for json response

        }

     }

我沒有測(cè)試第二個(gè),因?yàn)槲覜]有這臺(tái)機(jī)器的環(huán)境


查看完整回答
反對(duì) 回復(fù) 2021-05-12
  • 1 回答
  • 0 關(guān)注
  • 289 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)