JAVA制作C/S模式的系统,例如我想做一个信息管理系统。有种模式就只是客户端直接和 SQL sever 相连接的形式,但是这样做我知道是非常的不好的。所以我自己在想用三层的模式去做,客户/服务/数据库 这样来做, 服务和数据库同在一台计算机上,然后等待用户的访问,而服务器与数据库打交道然后返回信息给客户端。现在有个问题在捆饶我的就是,客户是通过IO流把数据库传到服务端的,在JAVA数据库的访问机制里面 查询数据是用 executeQuery(String) 方法,而添加、修改、删除等是用executeUpdate(String)方法来实现的,那我想问当用户把一个String型的数据流到服务器的时候,怎么样判断到底他是什么样的查询还是添加、修改、删除等呢?因为我要判断才能知道他是什么语句才能通过服务端与数据库进行访问。或者我自己不是很明白设计思路,望高手能指教一二,谢谢。

解决方案 »

  1.   

    不清楚你说的是怎么回事?要和服务器交互,先得确定用什么方式通讯:socket还是http?
    如果用socket,先要确定消息的格式(也可叫通讯协议),服务器接受请求后根据消息的格式再决定进行何种处理.
    如果用http,去web开发版看看用jsp\servlet怎么做的.
      

  2.   

    就是socket的咯,不懂得服务器要怎么样进行处理,能不能说个大概啊?
      

  3.   

    你得定义消息的格式,比如在每个消息的头部加一段固定长度的信息,包括消息类型和消息的长度。
    简单举例说,我规定前6个字节是消息头,其中前两字节表示类型,后四字节表示消息长度。
    你服务器端接受部分一次循环,先读前面6个节点,解析类型和长度len,根据类型你就知道是查询,更新还是其他任意定义的消息类型了,将后面len长的数据读出来,调用相应类型的处理程序就行了。
      

  4.   

    你说的这个问题是从c/s模式里最基本的问题,如果是b/s所有通讯工作都可以通过浏览器和web服务器完成。c/s模式就要靠自己来做这个功能(不知道有没有什么技术免掉这些工作),在我们以前做的一个c/s项目里,我们把所有的消息做成了一个类的等级结构,这样每个消息含有一个自己的标志信息,收到消息方采用的访问着模式(即首先把收到某种消息的处理注册到一个管理者上,管理者收到消息就根据消息的类别触发相应的事件),这套设计方式是我们自己的解决方法,由于技术和时间原因,不知道这样科学不科学,仅供参考。欢迎一起讨论