logo头像

博学广问,自律静思

java实现webservice+MySQl

关于webservice

由于之前写过JAVA和PHP的JSON以及JMI的网络服务,这次在使用webservice完成管理待办事项自然就联想到它们。JAVA和PHP JSON、JMI、webservice三者共同之处是可以提供服务器的资源共享。 Web Service具有跨平台性,可以在不同设备、不同编程语言中进行调用,所以它的应用范围应该要比RMI更广

基于MySQl数据库查询的webservice实现管理待办事项列表

运行截图

添加用户: 添加事项: 查询事项: 删除事项: 清空事项:

服务器端代码是怎么实现的

下面介绍一下是怎样实现上述功能的服务端代码:。 我的服务端主要有四个类: 数据库连接及方法接口TodoListInterDbFace、数据库连接及方法实现类TodolistDb及方法实现类以及webservice接口TodoListServerInterface、Webservice实现类TodoListServer。  

下面是示意图:

客户端代码是怎么实现的

wsimport -keep http://127.0.0.1:8002/webservice/TodoList?wsdl解析WSDL后: 创建TodoListClient类main方法为:

public static void main(String[] args){
        int cmdLength=args.length;
        TodoListServerService tlist = new TodoListServerService() ;
        TodoListServerInterface todoList = tlist.getTodoListPort();
        String note=”WebService待办事项客户端©王柏元—命令行版:\n”
                + “1.帮助信息:\n\thelp\n”
                + “2.用户注册:\n\tregister [用户名] [密码]\n”
                + “ 3.添加待办事项:\n\tadd [你的用户名] [你的密码] [待办事项标题] [邀请谁?他的用户名] [开始时间] [结束时间]\n”
                + “\t 时间格式:2015-06-05 22:29:19\n”
                + “4. 查询待办事项:\n\tquery [你的用户名] [你的密码][开始时间] [结束时间]\n”
                + “5.删除待办事项:\n\tdelete [你的用户名] [你的密码] [待办事项ID]\n”
                + “6.清除待办事项:\n\tclear [username] [password]\n”
                + “7.关于本程序:\n\tabout\n”
                + “8.退出:\n quit\n\t”
                + “请输入命令:”;
        String about=”WebService待办事项客户端©王柏元—命令行行版:\n”
                + “作者:王柏元\n”
                + “个人网站:http://baiyuan.wang\\n
                + “运行模式:命令行环境\n”
                + “程序介绍:使用Java WebService创建一个待办事项管理系统。”
                + “不同的用户可以使用这个待办事项管理系统执行查询、添加和删除”
                + “待办事项的操作。服务器支持待办事项的登记和清除等功能;”;
            //System.out.println(hello.hello(“liyong”));
                
            switch(args[0]){
            
            case
“register”:
                if(cmdLength==3){
                    System.out.println(todoList.addMeetingUsers(args[1], args[2]));
                }else{
                    System.out.println(“命令参数错误\n”
                            + “用户注册:\n\tregister [用户名] [密码]\n”);
                }
                break;
            case “add”:
                if(cmdLength==9){
                    System.out.println(todoList.addMeetings(args[1], args[2],args[3] ,args[4],args[5]+” “
                +args[6], args[7]+” “+args[8]));
                }else{
                    System.out.println(“命令参数错误\n”
                            + “添加会议:\n\tadd [你的用户名] [你的密码] [邀请谁?他的用户名][会议标题] [开始时间] [结束时间] \n”);
                }
                break;
            case “query”:
                if(cmdLength==7){
                    if(todoList.loginMeetings(args[1], args[2]).equals(“1”))
                        System.out.println(todoList.searchrMeetings(args[3]+” “+ args[4],args[5]+” “+ args[6]));
                }else{
                    System.out.println(“命令参数错误\n”
                            + “查询会议:\n\tquery [用户名] [密码][开始时间] [结束时间]\n”);
                }
                break;
            case “delete”:
                if(cmdLength==4){
                    if(todoList.loginMeetings(args[1], args[2]).equals(“1”))
                        System.out.println(todoList.deleteMeetings(args[1], args[3]));
                }else{
                    System.out.println(“命令参数错误\n”
                            + “删除会议:\n\tdelete [你的用户名] [你的密码] [会议ID]\n”);
                }
                break;
            case “clear”:
                if(cmdLength==3){
                    if(todoList.loginMeetings(args[1], args[2]).equals(“1”))
                        System.out.println(todoList.clearMeetings(args[1]));
                }else{
                    System.out.println(“命令参数错误\n”
                            + “清除会议:\n\tclear [username] [password]\n”);
                }
                break;
            case “about”:
                System.out.println(about);break;
        
            case
“help”:
            System.out.println(note);break;
                
                }
        }

  对于菜单的实现原理请参考我的博客文章:http://baiyuan.wang/java-rmi-6-making-the-command-line-navigation-menu.html