跟在其他java项目里面写的一样呀,没什么区别,如果是用连接池的话就更好写了,为什么用vb做客户端又不用.net做服务器端呢?C#的webservice也很方便呀.

解决方案 »

  1.   

    呵呵,因为客户那里没有。NET环境啊。
      

  2.   

    没用过webservice,但道理是一样的,你可以借鉴借鉴:
    1.  ---Servlet接受客户端(比如VB)过来的请求
    2.  ---Servlet调用相应的逻辑类去数据库查找,并转换到持久化类
    3.  ---所有的持久化类都实现了toXMLDocument,将查询结果通过Dom4j或JDom转换成XML
    4.  ---Servlet向客户端输出XML
    5.  ---客户端用msxml解析结果
      

  3.   

    呵呵
    楼上的哥们,你还真是执著的推销你的理论阿。你实际用一次WebService就知道他的好处了。应用程序调用远程的WebService就像调用本地的Com组件 或者是 动态链接库一样。而且很多的动态库都提供了头文件吧,WebService也一样提供了类似的头文件,你只要引用一下,那完全就和调用本地方法一样了。那还用的着向你上面那么麻烦要分5部走呢!
      

  4.   

    wtusmchen12() :
    我回了你的另外帖子
    http://community.csdn.net/Expert/topic/4117/4117453.xml?temp=.1782801
      

  5.   

    先对楼上的说声“对不起”,无意冒犯了你,也感谢你给我提供了这么多宝贵的资料。
    另外需要说明的是--我发贴的目的是来推销什么,毕竟你我的时间都很宝贵,只是说出我的想法和做法,希望各位能帮助和指导我,对别的像我这样的新手也有借鉴作用,这样互相切磋我想对我们都有好处,毕竟碰撞产生火花嘛!不过我想像我这样的“低手”更需要你这种“高手”来呵护和指点,而不是训斥和嘲笑,这样违背了我们上CSDN的初衷。
    再补充一点,“Servlet的客户端可以是.exe类型的应用程序么?”这种话像我这种没学过计算机的新人说说可以,作为高手犯这种常识性的错误就有点哪个了,指出来希望别介意!
      

  6.   

    你的webservice是用java实现的吗,在webservice中对数据库的操作就是使用jdbc接口,没有想象中那么难,平时怎么做现在怎么做。别告诉我你没用过jdbc。那就郁闷了!
      

  7.   

    就跟平时写的一样,现在给你个例子,是连接mysql的。如下:webservice服务器端程序package samples.capacity;
    import org.gjt.mm.mysql.Driver;
    import java.sql.*;public  class DbUtil {
      public DbUtil(){}
      private Connection con=null;  public Connection getConnection(Connection con)throws
          SQLException,Exception{
        con=this.dbCon();
        return con;
      }
      private Connection dbCon()throws ClassNotFoundException,SQLException,Exception{
        String driver="org.gjt.mm.mysql.Driver";
        String url ="jdbc:mysql://localhost:3306/test?user=root&password=";
        try{
          Class.forName(driver).newInstance();
          con=DriverManager.getConnection(url);
        }catch(ClassNotFoundException exp){
          System.err.println("数据库驱动载入有错误:"+exp);
        }catch(SQLException exp){
          System.err.println("数据库连接有错误:"+exp);
        }catch(Exception exp){
          System.err.println("发现未知错误:"+exp);
        }
        return con;
      }
      public void release()throws Exception{
        if(!(con==null))
          con.close();
      }
    }
    package samples.capacity;
    import org.gjt.mm.mysql.Driver;
    import java.sql.*;import java.io.Serializable;
    import java.sql.*;
    import samples.capacity.DbUtil;
    public class search implements Serializable{
      private Connection con=null;
      private ResultSet rs = null;
      private Statement stmt = null;  public search() {
      }
      
      public String loginUser(String username,String password)throws SQLException,Exception
      {
       
          DbUtil db=new DbUtil();
          con=db.getConnection(con);
          stmt = con.createStatement();
          String strSql = "select * from user where username = '"+username+"' and password = '"+password+"'";;
          rs = stmt.executeQuery(strSql);
          if (rs.next()){
          return "welcome to here";
          }else{
          return "unsuccess";
          }
       }
    }文件deploy1.wsdd<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
    <service name="search" provider="java:RPC">
    <parameter name="className" value="samples.capacity.search"/>  
    <parameter name="allowedMethods" value="*"/>
    </service>
    </deployment>
    客户端程序package axisexercise;
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    import org.apache.axis.encoding.XMLType;
    import javax.xml.rpc.ParameterMode;public class AXISTest
    {
    public static void main( String[] args ) throws Exception
    {
    Service service = new Service();
    Call call = ( Call ) service.createCall();
    call = ( Call ) service.createCall();
    //设置访问点
    call.setTargetEndpointAddress( "http://localhost:8080/axis/services/search" );
    //设置操作名
    call.setOperationName( "loginUser" );
    //设置入口参数
    call.addParameter( "op1", XMLType.XSD_STRING, ParameterMode.IN );
    call.addParameter( "op2", XMLType.XSD_STRING, ParameterMode.IN );
    call.setReturnType( XMLType.XSD_DOUBLE );
    String s1 = new String( "123" ); 
    String s2 = new String( "123" );
    //调用服务
    System.out.println(call.invoke( new Object[] {s1,s2}));
    } }
      

  8.   

    没错,和平时一样,用java写好访问数据库的程序。
    只是部署的时候,要用相应的服务器部署(如axis).
    把数据库相关程序部署完毕了以后,用vb调用就可以了。