任务
打开小小输入法的郑码表观察,如
a 一 再
aa 一下
aaam 万无一失
aaav 可歌可泣
aaax 天下无难事
aacf 百无聊赖
aacm 无可奉告
aadj 无可挽回
aadt 殊死搏斗
aaeu 平型关
aaez 一开始
。。。
基于MYSQL实现郑码查询java程序:使得输入输入aacm,则输出“无可奉告”。而输入一个汉字或汉字词,则输出该字或词的郑码编码。
(参考基于SQLite的命令窗郑码查询和基于文本文件的命令窗郑码查询)
创建文件
首先,在会配置SQL数据库,建立数据表的前提下,我们需要建立一个SQL郑码表文件:
建立数据库的操作:
1.连接数据库。
mysql -u root -p
2.创建数据库。
create database 数据库名;
3.查询数据库。
show databases;
4.选择数据库。
use 数据库名;
5.删除数据库。
drop database 数据库名;
6.创建数据表。
create table table_name
(field1 datatype,field2 datatype,field3 datatype);
7.插入数据。
方式一:
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
或者:
INSERT INTO table_name VALUES ( value1, value2,...valueN );
8.查询数据表。
select * from 表名;
select field1, field2...from 表名;
9.删除数据表。
DROP TABLE table_name ;
建立的郑码数据表如下:
连接数据库
JAVA程序操作MYSQL数据库的学习参见:
https://blog.csdn.net/qq_42446456/article/details/81175677
操作代码:
package MySQLTest;
import java.sql.Connection;//导入Java.sql包中的Connection类,用于与数据库的连接
import java.sql.DriverManager;//导入Java.sql包中的DriverManager类,管理一组JDBC驱动程序
import java.sql.ResultSet;//导入Java.sql包中的ResultSet类 ,表示数据库的结果,用于查询
import java.sql.Statement;//导入Java.sql包中的Statement类,执行sql语句,并返回生成的结果
import java.sql.SQLException;//导入Java.sql包中的Exception类,执行sql语句,寻找异常。
import java.util.Scanner; //导入Java.sql包中的Scanner类
public class zmb {//定义一个类,类名为zmb
public static void main(String[] args){//主程序运行
Connection conn = null; //声明数据库连接对象
String driver ="com.mysql.cj.jdbc.Driver";//加载数据库驱动
String url ="jdbc:MySQL://localhost:3306/table1?&useSSL=false&serverTimezone=UTC";
//url指向要访问的数据库table1
String username ="root";//MySQL配置时的用户名
String password ="965827";//MySQL配置时的密码
try{
Class.forName(driver);
//getConnection()方法,连接MySQL数据库!
conn=DriverManager.getConnection(url,username,password);
if(!conn.isClosed())
System.out.println("数据库连接成功!");
//创建statement类对象,用来执行SQL语句!
}
catch( SQLException | ClassNotFoundException e){
//数据库驱动类异常处理
System.out.println("数据库驱动加载失败!");
e.printStackTrace();
}
while(true){
System.out.println("请输入一个郑码编码:");//控制台输出“请输入一个郑码编码”
@SuppressWarnings("resource")
Scanner scan=new Scanner(System.in);//创建Scanner对象,控制台等待输入
//要执行的SQL语句
String sql="select * from zmb" ;//将从表中查询到的的所有信息存入sql
try{
Statement Statement=conn.createStatement();//得到Statement实例
//ResultSet类,用来存放获取的结果集!
ResultSet rs=Statement.executeQuery(sql);;//执行SQL语句返回结果集
String str=scan.nextLine(); //定义字符型变量str并赋值
boolean b = false;//判断表中是否含有输入的词
// 当返回的结果集不为空时,并且还有记录时,循环输出记录
while(rs.next()){ //读一行文本
String zm=rs.getString("郑码");//获取郑码字段
String ch=rs.getString("中文");//获取中文字段
if(str.equalsIgnoreCase(zm)) {//输入郑码编码存在于表记录则执行
System.out.println(ch);//输出对应的中文
b = true;
}
if(str.equalsIgnoreCase(ch)) {//输入的词语存在于表记录则执行
System.out.println(zm);//输出对应的郑码编码
b = true;
}
if(str.equals("ByeBye")) {//判断是否输入的为"ByeBye"
System.out.println("程序退出!");
System.exit(0);//终止当前正在运行的程序
}
}
if(!b) {//查不到
System.out.println("没有收录该词!");
}
}
catch (SQLException e) {
System.out.println("查询数据时出错!"+e.getMessage());
}
finally{
System.out.println("-------------------------------");
}
}
}
}
编程结果
编译程序结果: