基于MYSQL的JAVA应用
要求:
基于MYSQL实现上次用SQLite实现的郑码查询java程序并改进:使得输入输入aacm,则输出“无可奉告”。而输入一个汉字或汉字词,则输出该字或词的郑码编码。
(1)在命令窗口中创建一个郑码表,命名为zmdb。
(2)用Navicat向表中添加一些数据,如图所示:
可以看到zmdb表中已经有一些数据,如图所示:
(3)用java程序操作zmdb中的数据
程序为:
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
public class main {
public static void main(String[] args) {
//声明Connection对象
Connection con;
//驱动程序名
String driver = "com.mysql.jdbc.Driver";
//URL指向要访问的数据库名mydata
String url = "jdbc:mysql://localhost:3306/person?useUnicode=true&characterEncoding=utf-8&useSSL=false";
//MySQL配置时的用户名
String user = "root";
//MySQL配置时的密码
String password = "";
while(true) {
System.out.print("Please input :");
Scanner sa=new Scanner(System.in); //定义scanner,等待输入
String a=sa.next(); //读取输入的字符放入a中
if("ByeBye".equalsIgnoreCase(a)) {//equalsIgnoreCase( )方法用来比较字符串不区分大小写,equals( )方法用来比较字符串需要区分大小写
System.exit(0);//退出程序的执行
}
try {
//加载驱动程序
Class.forName(driver);
//1.getConnection()方法,连接MySQL数据库!!
con = (Connection) DriverManager.getConnection(url,user,password);
//2.创建statement类对象,用来执行SQL语句!!
Statement statement = (Statement) con.createStatement();
String sql = "select * from zmdb";
//3.ResultSet类,用来存放获取的结果集!!
ResultSet rs = statement.executeQuery(sql);
boolean flag=false;//定义flag用于标志是否找到
while(rs.next()){
String zm=rs.getString("zm");
String chinese=rs.getString("chinese");
if(zm.equalsIgnoreCase(a)) {//用输入的字符与文件里面的字符进行比对
System.out.println("This is chinese:"+chinese);
flag=true;//标志找到
}
if(chinese.equalsIgnoreCase(a)) {//用输入的字符与文件里面的字符进行比对
System.out.println("This is zm:"+zm);
flag=true;//标志找到
}
}
if(flag==false) {//没有找到
System.out.println("The word can't be found!");
}
rs.close();
con.close();
} catch(ClassNotFoundException e) {
//数据库驱动类异常处理
System.out.println("Sorry,can`t find the Driver!");
e.printStackTrace();
} catch(SQLException e) {
//数据库连接失败异常处理
e.printStackTrace();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
}
运行效果为: