基于MySQL实现郑码查询————JAVA程序

基于MySQL实现郑码查询————JAVA程序

要求:
基于MySQL用JAVA实现郑码查询:使得输入输入aacm,则输出“无可奉告”。而输入一个汉字或汉字词,则输出该字或词的郑码编码。

工具

MySQL,Navicat Premium,Eclipes,JAVA连接MySQL地驱动程序。

建立数据表

在 Navicat Premium 中新建数据表/郑码表:我的郑码表在Test连接中,数据库zmb中的zmtable表。添加数据之后如下:
这里写图片描述

用JAVA程序连接操作

代码:

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
public class zhengma {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        // 加载驱动
        Class.forName("com.mysql.jdbc.Driver");
        //获取Connection对象
        Connection con = DriverManager.getConnection("jdbc:mysql:///zmb","root", "root");
        // 获取Statement对象
        Statement st = con.createStatement();
        //查询操作              
        System.out.println("#郑码查询小工具#");
        System.out.println();                  //转行
        System.out.println("汉字查询郑码请输入0,郑码查询汉字请输入1");
        Scanner input = new Scanner(System.in);//创建一个Scanner对象
        int alternative=input.nextInt();       //从控制台获取输入
        //下面是switch语句,为了选择是汉译英还是英译汉,用0和1控制
        switch (alternative) {
        //通过汉字查询对应的郑码
        case 0:{
        while(true) {
        System.out.print("请输入汉字:");
        Scanner sa=new Scanner(System.in); 
        String a=sa.next();
        //输入“拜拜”退出程序
        if("拜拜".equalsIgnoreCase(a)) {
            System.out.println("退出程序!");  
            System.exit(0);
          }
        //读取数据表
        String sql = "select * from zmtable";
        ResultSet rs = st.executeQuery(sql);//得到数据结果
        //布尔值控制循环
        boolean flag=false;
        while (rs.next()) {
            String chinese=rs.getString("chinese");
            String zm=rs.getString("code");
             if(chinese.equalsIgnoreCase(a)) {
                 System.out.println(zm);
                 flag=true;
             }
        } 
        //数据库/表中没有的记录,显示查不到
        if(flag==false) {
            System.out.println("查不到该汉字的郑码,请输入其他的试试吧~");
        }
    }
        }//结束汉字查询郑码
        //通过郑码查询汉字,与上面case=0以下的语句大致一样
        case 1:{
            while(true) {
                System.out.print("请输入郑码:");
                Scanner sa=new Scanner(System.in); 
                String a=sa.next();         
                if("byebye".equalsIgnoreCase(a)) {
                    System.out.println("退出程序!");  
                    System.exit(0);
                  }         
                String sql = "select * from zmtable";
                ResultSet rs = st.executeQuery(sql);                
                boolean flag=false;
                while (rs.next()) {
                    String zhengma=rs.getString("code");
                    String hangzi=rs.getString("chinese");
                     if(zhengma.equalsIgnoreCase(a)) {
                         System.out.println(hangzi);
                         flag=true;
                     }
                } 
                if(flag==false) {
                    System.out.println("查不到该郑码对应的汉字,请输入其他的试试吧~");
              }
      }
      }
    }
  }
 }

测试:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/yangchenju/article/details/80636893
今日推荐