วิธีที่จะดึงสมบูรณ์ข้อมูลจากฐานข้อมูลของโต๊ะทา RMI ใช้อาเรย์วิธีการ?

0

คำถาม

ฉันต้องการดึงข้อมูลสมบูรณ์ข้อมูลจากฐานข้อมูลของโต๊ะทา RMI. ฉันใช้อาเรย์วิธีการอยู่ในส่วนติดต่อของจาวาและฉันต้องการจัดเตรียมไว้ว่าวิธีการอยู่ใน implementation ห้องเรียน ความตั้งใจของฉันคือเพื่อเอาข้อมูลอยู่ในตารางคู่ลำดับผ่านทาง implementation และแสดงมันออกผ่านทาง JTable ที่ลูกค้าด้านหนึ่ง ฉันต้องสร้างเป็นหนึ่งคอลัมน์โต๊ะในฐานข้อมูล ฉันต้องไปออกแบบทั้งหมดข้อมูลจากโต๊ะนั่นไปที่ลูกค้าด้านหนึ่ง

ฉันต้องติดที่ถูกเข้ารหัสฉุกเฉินผมทำ ฉันต้องยังมีข้อผิดพลาดอยู่ภายในสองรหัสส่วนที่ฉันได้.

ส่วนติดต่อ

public interface Interface extends Remote {
     public static String[] getArray() throws Remote Exception; // Here it shows missing method 
                                                               //  body or declare abstract
}

Implementation

public class TheImplementation extends UnicastRemoteObject implements Interface{
    
    public TheImplementation()throws Remote Exception{
        super();
    }
    
    private static final long serialVersionUID = -3763231206310559L;
    
    Connection con;
    PreparedStatement pst;
    ResultSet rst;

    public static String[] getArray() throws RemoteException{
        String fruitdetails = null; 
        try {
            Connection connection=ConnectionProvider.getConnection();
            Statement st=connection.createStatement();
            ResultSet rs=st.executeQuery("select *from details");
            while(rs.next()) { 
                fruitdetails= rs.getString("fruit");
                String tbData[]={fruitdetails};
            }
        }
        catch (SQLException e) {
            JOptionPane.showMessageDialog(null, e);
        }
        return tbData;// Here it shows error. Cannot find symbol.
                           // I tried to declare array at top. But, It didn't work.
    }
}
java rmi
2021-11-24 05:53:25
1

คำตอบที่ดีที่สุด

0

แบบนามปธรรมวิธีการของใน ส่วนเชื่อมต่อระยะไกล ไม่สามารถในรูปของไฟฟ้าสถิตย์ดังนั้นคุณต้องการจะเปลี่ยนส่วนติดต่อมายความว่าต้องรับข้อความอะไรเลย

public interface Interface extends java.rmi.Remote {
    public String[] getArray() throws RemoteException;
}

ค่ากลับมาโดยวิธีการของทางไกลต้องเป็น serializable. Arrays ในงานจาวากำ serializable อย่างไรก็ตาม arrays มีซ่อมขนาดและตั้งแต่คุณกลับมาสอบผลลัพธ์ของฐานข้อมูลสืบค้คุณไม่สามารถรู้จักขนาดได้ นั่นแหละค่ะฉันว่าวิธีการ getArray กลับมาเป็น ArrayList หรือดีกว่านั้นอีกเป็น CachedRowSet.

public interface Interface extends Remote {
    public CachedRowSet getArray() throws RemoteException;
}

ตั้งแต่เรียน TheImplementation เป็นของคุณ RMI เซิร์ฟเวอร์เรียนมันอาจจะดีกว่าต้อง ปูมบันทึก ข้อยกเว้นมากกว่าแสดง JOptionPane และคุณควรจะเสมอบันทึกการ ตั้งร่องรอย. โปรดจำไว้ว่าระยะไกลวิธีการของต้องประกาศว่าพวกเขาโยน RemoteException ในคำสั่งที่ต้องบอกค RMI ลูกค้าที่ปลายทางวิธีการล้มเหลว จึนอกจากการทำปูมบันทึกที่ยกเว้นวิธีการ getArray ก็ยังขว้าง RemoteException.

การต่อรหัส demonstrates.

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.sql.rowset.CachedRowSet;
import javax.sql.rowset.RowSetFactory;
import javax.sql.rowset.RowSetProvider;

public class TheImplementation extends UnicastRemoteObject implements Interface {

    public TheImplementation() throws RemoteException {
        super();
    }

    private static final long serialVersionUID = -3763231206310559L;

    public CachedRowSet getArray() throws RemoteException {
        try (Connection con = ConnectionProvider.getConnection();
             Statement st = con.createStatement();
             ResultSet rs = st.executeQuery("select * from details")) {
            RowSetFactory factory = RowSetProvider.newFactory();
            CachedRowSet fruitDetails = factory.createCachedRowSet();
            fruitDetails.populate(rs);
            return fruitDetails;
        }
        catch (SQLException e) {
            throw new RemoteException("Method 'getArray()' failed.", e);
        }
    }
}

โปรดสังเกตว่างอยู่เหนือดรหัสยังใช้ พยายามกับทรัพยากร เพื่อทำให้แน่ใจว่าค ResultSet, Statement แล้ว Connection ทุกคนปิดแล้ว

2021-11-24 08:26:23

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่