基于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("查不到该郑码对应的汉字,请输入其他的试试吧~");
}
}
}
}
}
}
测试: