Rumah > Artikel > pangkalan data > Bagaimana untuk melaksanakan fungsi bilik sembang mudah menggunakan MySQL dan Java
Cara melaksanakan fungsi bilik sembang ringkas menggunakan MySQL dan Java
Pengenalan:
Dengan kelaziman media sosial hari ini, orang ramai semakin bergantung pada sembang dalam talian untuk berkomunikasi dan berkongsi maklumat. Bagaimana untuk melaksanakan fungsi bilik sembang mudah menggunakan MySQL dan Java adalah projek yang sangat menarik dan praktikal. Artikel ini akan memperkenalkan cara menggunakan MySQL dan Java untuk melaksanakan fungsi ini, dan menyediakan contoh kod khusus.
1. Bina pangkalan data
Pertama, kita perlu mencipta pangkalan data dalam MySQL untuk menyimpan maklumat berkaitan bilik sembang. Anda boleh menggunakan pernyataan SQL berikut untuk mencipta pangkalan data dan jadual.
CIPTA ruang sembang PANGKALAN DATA;
GUNAKAN bilik sembang;
CIPTA pengguna JADUAL (
id INT PRIMARY KEY AUTO_INCREMENT,
nama pengguna VARCHAR(50) UNIK,
TABLE MASJID(50)
kata laluan VARCHAR(50);🜎
sender_id INT,
receiver_id INT,
message VARCHAR(200),
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (sender_id) RUJUKAN pengguna (id)
REFERENCES pengguna (id)
);
Dalam kod di atas, kami mencipta pangkalan data yang dipanggil bilik sembang dan mencipta dua jadual di dalamnya: pengguna dan mesej. Jadual pengguna digunakan untuk menyimpan maklumat pengguna, termasuk id, nama pengguna dan kata laluan. Jadual mesej digunakan untuk menyimpan maklumat mesej, termasuk ID pengirim, ID penerima, kandungan mesej dan cap masa mesej.
2. Tulis kod Java
Seterusnya, kita perlu menggunakan Java untuk melaksanakan fungsi bilik sembang. Mula-mula, kami mencipta kelas yang dipanggil ChatServer untuk mewujudkan sambungan sebelah pelayan dan memproses mesej.
import java.io.*;
import java.util.*;
Public Class ChatServer {
public 🎎 args) {
clientOutputStreams = new ArrayList<PrintWriter>(); try { ServerSocket serverSock = new ServerSocket(5000); while (true) { Socket clientSocket = serverSock.accept(); PrintWriter writer = new PrintWriter(clientSocket.getOutputStream()); clientOutputStreams.add(writer); Thread t = new Thread(new ClientHandler(clientSocket)); t.start(); System.out.println("Got a connection"); } } catch (Exception ex) { ex.printStackTrace(); }}public static void tellEveryone(String message) {
Iterator<PrintWriter> it = clientOutputStreams.iterator(); while (it.hasNext()) { try { PrintWriter writer = (PrintWriter) it.next(); writer.println(message); writer.flush(); } catch (Exception ex) { ex.printStackTrace(); } }}
}
Dalam kod di atas, kami menggunakan kelas ServerSocket untuk mendengar port 5000 dan menggunakan ArrayList untuk menyimpan semua sambungan pelayan Objek PrintWriter klien. Kaedah "tellEveryone" digunakan untuk menghantar mesej kepada semua pelanggan yang disambungkan ke pelayan.
import java.net.*;
import java.util.*;
kelas awam ClientHandler melaksanakan Runnable {
pembaca BufferedReader peribadi;
SocketSocketpublic Client ) {
try { sock = clientSocket; InputStreamReader isReader = new InputStreamReader(sock.getInputStream()); reader = new BufferedReader(isReader); } catch (Exception ex) { ex.printStackTrace(); }}public void run() {
String message; try { while ((message = reader.readLine()) != null) { System.out.println("read " + message); ChatServer.tellEveryone(message); } } catch (Exception ex) { ex.printStackTrace(); }}
}
Dalam kod di atas, kami menggunakan kelas BufferedReader untuk membaca mesej yang dihantar oleh pelanggan, dan kemudian memanggil kaedah tellEveryone ChatServer ke menghantar mesej kepada semua pelanggan yang disambungkan ke pelayan.
Akhir sekali, kami menggunakan kelas yang dipanggil ChatClient untuk menguji fungsi bilik sembang.
import java.io.*;
import java.net.*;
import java.awt.event.*;
kelas awam ChatClient {
Private static TextArea messageArea;
Butang hantar statik peribadi;
penulis PrintWriter statik peribadi;
stokin Soket statik statik peribadi;
utama kekosongan statik awam(String[] args) {
buildGUI(); setupNetworking();} void {ee idprivate GUIstatic }private static void setupNetworking() {
Frame frame = new Frame("Chat Client"); messageArea = new TextArea(); inputField = new TextField(); sendButton = new Button("Send"); sendButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { try { String message = inputField.getText(); writer.println(message); writer.flush(); inputField.setText(""); } catch (Exception ex) { ex.printStackTrace(); } } }); frame.add(messageArea, BorderLayout.CENTER); frame.add(inputField, BorderLayout.SOUTH); frame.add(sendButton, BorderLayout.EAST); frame.setSize(400, 300); frame.setVisible(true);}private statik class IncomingReader implements Runnable {
try { sock = new Socket("localhost", 5000); InputStreamReader isReader = new InputStreamReader(sock.getInputStream()); BufferedReader reader = new BufferedReader(isReader); writer = new PrintWriter(sock.getOutputStream()); Thread readerThread = new Thread(new IncomingReader(reader)); readerThread.start(); } catch (Exception ex) { ex.printStackTrace(); }");
private BufferedReader reader; public IncomingReader(BufferedReader reader) { this.reader = reader; } public void run() { String message; try { while ((message = reader.readLine()) != null) { System.out.println("incoming " + message); messageArea.append(message + "}private static class IncomingReader implements Runnable {
} } catch (Exception ex) { ex.printStackTrace(); } }
}
di atas, kita berada dalam kod AW di atas}🎎 sembang Antara muka grafik pelanggan Hantar mesej dengan mengklik butang hantar, dan kemudian gunakan kelas Socket untuk mewujudkan sambungan dengan pelayan dan menghantar dan menerima mesej
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi bilik sembang mudah menggunakan MySQL dan Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!