一、在MySQL数据库中创建“zmdb”表
添加MySQL-JBDC
以及连接MySQL数据库
的具体方法可在笔者博客中查看。
1、利用SQL语句创建表格:
CREATE TABLE `zmbd`(
`郑码` VARCHAR(200) NOT NULL auto_increment,
`汉字` VARCHAR(200) DEFAULT NULL,
PRIMARY KEY(`郑码`)
)
2、插入郑码表:
INSERT INTO `mysql`.`zmdb`(`郑码`, `汉字`) VALUES ('<a>', '<一 再>');
INSERT INTO `mysql`.`zmdb`(`郑码`, `汉字`) VALUES ('<aa>', '<一下>');
INSERT INTO `mysql`.`zmdb`(`郑码`, `汉字`) VALUES ('<aaam>', '<万无一失>');
INSERT INTO `mysql`.`zmdb`(`郑码`, `汉字`) VALUES ('<aaav>', '<可歌可泣>');
INSERT INTO `mysql`.`zmdb`(`郑码`, `汉字`) VALUES ('<aaax>', '<天下无难事>');
INSERT INTO `mysql`.`zmdb`(`郑码`, `汉字`) VALUES ('<aacf>', '<百无聊赖>');
INSERT INTO `mysql`.`zmdb`(`郑码`, `汉字`) VALUES ('<aacm>', '<无可奉告>');
INSERT INTO `mysql`.`zmdb`(`郑码`, `汉字`) VALUES ('<aadj>', '<无可挽回>');
INSERT INTO `mysql`.`zmdb`(`郑码`, `汉字`) VALUES ('<aadt>', '<殊死搏斗>');
INSERT INTO `mysql`.`zmdb`(`郑码`, `汉字`) VALUES ('<aaeu>', '<平型关>');
INSERT INTO `mysql`.`zmdb`(`郑码`, `汉字`) VALUES ('<aaez>', '<一开始>');
INSERT INTO `mysql`.`zmdb`(`郑码`, `汉字`) VALUES ('<b>', '<地 却>');
运行结果:
二、郑码查询
郑码查询程序:
package mysql;
import java.sql.*; //导入java.sql包
import java.util.Scanner;
public class Select {
static Connection con; //声明Connection对象
static Statement sql; //声明Statement对象
static ResultSet res; //声明ResultSet对象
public Connection getConnection(){ //建立返回值为Connection的方法
try { //加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
System.out.println("数据库驱动加载成功");
}catch(ClassNotFoundException e){
e.printStackTrace();
}
try { //通过访问数据库的URL获取数据库连接对象
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql");
System.out.println("数据库连接成功");
System.out.print('\n');
}catch(SQLException e) {
e.printStackTrace();
}
return con; //按方法要求放回一个Connection对象
}
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
Select c = new Select(); //创建本类对象
con =c.getConnection(); //与数据库建立连接
while(true) {
try {
sql = con.createStatement(); //实例化Statement对象
res = sql.executeQuery("select * from zmdb");
String str = scan.nextLine(); //定义字符型变量str并赋值
boolean flag = false; //定义布尔型变量flag
while(res.next()) { //读一行文本并赋值给word
String en = res.getString("郑码"); //获取english字段值
String ch = res.getString("汉字"); //获取chinese字段值\
String english = en.substring(en.indexOf("<")+1,en.indexOf(">")); //截取字母
String chinese = ch.substring(ch.lastIndexOf("<")+1,ch.lastIndexOf(">")); //截取汉字
if(str.equals(english)) { //将输入字符与截取字母作比较
System.out.println(chinese);
flag = true; //能查找到对应便将flag置1
}
if(str.equals(chinese)) { //将输入字符与截取字母作比较
System.out.println(english);
flag = true; //能查找到对应便将flag置1
}
}
if(str.equals("ByeBye")) { //输入ByeBye退出程序
System.exit(0);
}
if(!(flag)) { //查找不到对应的词
System.out.println("查不到该词");
}
}catch(SQLException e) {
e.printStackTrace();
}
}
}
}
运行结果: