设计客户端与服务端通信的 Applet 程序
双方建立连接后,客户端向服务端发送 SQL 语句。如果发送的是查询语句,则需要将查询的结果通过服务端传到客户端并显示出来。如果传送的是更新语句,则需要在服务端上执行这个更新,并将执行成功与否告知客户端。
要求提交完整的客户端、服务端程序和Access数据库文件。
服务端操作的数据库设计如下:
Student 表( sage 为 smallint, 其他均为 varchar 类型)
学号 姓名 性别 年龄 所在系
Sno Sname Ssex Sage Sdept
95001 李勇 男 20 CS
95002 刘晨 女 19 IS
95003 王敏 女 18 MA
95004 张立 男 19 IS
Course 表 (CCredit 为 smallint ,其他均为 varchar 类型 )
课程号 课程名 先行课 学分
Cno Cname Cpno Ccredit
1 数据库 5 4
2 数学 2
3 信息系统 1 4
4 操作系统 6 3
5 数据结构 7 4
6 数据处理 2
SC 表 (sno,cno 为 varchar,grade 为 real 类型 )
学号 课程号 成绩
Sno Cno Grade
95001 1 92
95001 2 85
95001 3 88
95002 2 90真心求各位大神帮帮忙 这次作业间接的会影响学位 不是危言耸听!!!
不奢望会有什么完整代码,可以详细讲解一下,书上有客户机服务器的简单通信的代码,具体说一下怎么在服务器上响应SQL,对了,我们讲的是JDBC连接Access。
我就是一个编程文盲,一窍不通,越通俗越好,各位大神帮帮忙。顺便说一句,学JAVA是被迫的,不是自愿的,很用心学过,真心不入门!!!!
双方建立连接后,客户端向服务端发送 SQL 语句。如果发送的是查询语句,则需要将查询的结果通过服务端传到客户端并显示出来。如果传送的是更新语句,则需要在服务端上执行这个更新,并将执行成功与否告知客户端。
要求提交完整的客户端、服务端程序和Access数据库文件。
服务端操作的数据库设计如下:
Student 表( sage 为 smallint, 其他均为 varchar 类型)
学号 姓名 性别 年龄 所在系
Sno Sname Ssex Sage Sdept
95001 李勇 男 20 CS
95002 刘晨 女 19 IS
95003 王敏 女 18 MA
95004 张立 男 19 IS
Course 表 (CCredit 为 smallint ,其他均为 varchar 类型 )
课程号 课程名 先行课 学分
Cno Cname Cpno Ccredit
1 数据库 5 4
2 数学 2
3 信息系统 1 4
4 操作系统 6 3
5 数据结构 7 4
6 数据处理 2
SC 表 (sno,cno 为 varchar,grade 为 real 类型 )
学号 课程号 成绩
Sno Cno Grade
95001 1 92
95001 2 85
95001 3 88
95002 2 90真心求各位大神帮帮忙 这次作业间接的会影响学位 不是危言耸听!!!
不奢望会有什么完整代码,可以详细讲解一下,书上有客户机服务器的简单通信的代码,具体说一下怎么在服务器上响应SQL,对了,我们讲的是JDBC连接Access。
我就是一个编程文盲,一窍不通,越通俗越好,各位大神帮帮忙。顺便说一句,学JAVA是被迫的,不是自愿的,很用心学过,真心不入门!!!!
果真是教科书级别啊这种问题逻辑很简单的,自己去网上找找吧
Applet现在还有用吗?
还得学一遍applet,最主要的是学了这个对我未来目前看来没什么用,无奈放弃了
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;public class MySocketServer { public static void main(String[] args){
new ServerService(8000,10);
}
}class ServiceFrame extends Frame implements Runnable{
ServerService fatherListener;
Socket connectedClient;
TextArea serverMeg;
ServiceFrame(ServerService sv,Socket s){
fatherListener = sv;
connectedClient = s;
setTitle("服务器端socket窗口");
setLayout(new BorderLayout());
serverMeg = new TextArea(10,50);
add("Center",serverMeg);
setVisible(true);
InetAddress clientAddress = connectedClient.getInetAddress();
serverMeg.append("Client connected"+"from\n"+clientAddress.toString()+".\n");
}
public void run(){
try{
BufferedReader sIn = new BufferedReader(new InputStreamReader(connectedClient.getInputStream()));
PrintWriter sOut = new PrintWriter(connectedClient.getOutputStream());
sOut.println("Hello! Wellcome connect to our server!\r");
sOut.flush();
String s = sIn.readLine();
while(!s.equals("Bye")){
serverMeg.append("Client端输入的信息为:\n"+s);
s = sIn.readLine();
}
connectedClient.close();
}catch(Exception e){}
fatherListener.addMeg("Client"+"closed."+"\n");
dispose();
}
}class ServerService extends Frame{
ServerSocket m_sListener;
TextArea listenerMeg;
public ServerService(int Port,int Count){
try{
m_sListener = new ServerSocket(Port,Count);
setTitle("服务器端监听服务窗口");
this.addWindowListener(new WinAdpt());
setLayout(new BorderLayout());
listenerMeg = new TextArea("监听服务已经启动\n",10,50);
add("Center",listenerMeg);
setVisible(true);
while(true){
Socket connected = m_sListener.accept();
InetAddress clientAddress = connected.getInetAddress();
listenerMeg.append("Client"+"connected"+"from\n"+clientAddress.toString()+".\n");
ServiceFrame myST1 = new ServiceFrame(this,connected);
Thread myST2 = new Thread(myST1);
myST2.start();
}
}catch(IOException e){}
}
public void addMeg(String s){
listenerMeg.append(s);
}
}
class WinAdpt extends WindowAdapter{
public void windowClosing(WindowEvent e){
(e.getWindow()).dispose();
System.exit(0);
}
}