java實(shí)現(xiàn)單詞查詢小程序
本文實(shí)例為大家分享了Java單詞查詢小程序,供大家參考,具體內(nèi)容如下
1、任務(wù)簡介
本次分享的單詞查詢小程序是基于MySQL數(shù)據(jù)庫制作的,使用的詞匯表是我在博客《將Excel文件導(dǎo)入MySQL數(shù)據(jù)庫的方法》中講解的,首先我需要講解Java連接MySQL數(shù)據(jù)庫的方法,然后再給大家分享單詞查詢小程序。
2、Java連接MySQL數(shù)據(jù)庫的方法
1)要使用Java程序?qū)ySQL數(shù)據(jù)庫進(jìn)行操作,首先需要建立它們之間的連接,關(guān)于連接驅(qū)動(dòng)可以通過百度下載,下載解壓后可以得到一個(gè)jar包,將該包導(dǎo)入預(yù)先創(chuàng)建好的Java Project中,具體為右鍵點(diǎn)擊Java Project→New→Folder,文件名為lib,如下圖:

2)此時(shí)在該項(xiàng)目下會(huì)有l(wèi)ib文件夾出現(xiàn),將預(yù)先下載好的jar驅(qū)動(dòng)包拖動(dòng)到lib文件,此時(shí)會(huì)有如下顯示,點(diǎn)擊OK即可:

3)右鍵點(diǎn)擊Java Project→Build Path→Configure Build Path后進(jìn)到如下界面:

4)點(diǎn)擊Add JARs然后將剛才的lib包下的jar包導(dǎo)入:

5)這些步驟弄完后Myeclipse程序左邊的Java Project如下顯示:

3、單詞查詢小程序
1)由于需要實(shí)現(xiàn)單詞查詢功能,所以需要使用到Scanner類獲取用戶通過控制臺(tái)的輸入,關(guān)于Scanner類在5.15-5.21的任務(wù)中已經(jīng)使用到了,關(guān)于其更詳細(xì)知識(shí)可以通過菜鳥教程進(jìn)行學(xué)習(xí);
2)MySQL數(shù)據(jù)庫中使用到的表為之前博客中創(chuàng)建的english表,在本程序中SQL語句使用select * from english獲取整張表的信息,但是不使用輸出語句將這些信息輸出;
3)此外還需要定義一個(gè)布爾型變量來判斷表中是否含有所查詢的單詞,若沒有則輸出提示信息“沒有收錄該詞”,還需要使用if語句判斷用戶輸入的單詞是否與表中第一列的相同,語句為if(s.equalsIgnoreCase(english)),若相同則輸出該單詞的英文、中文和助記方法;
4)程序代碼如下:
import java.sql.Connection;//導(dǎo)入java.sql包下的Connection類
import java.sql.DriverManager;//導(dǎo)入java.sql包下的DriverManager類
import java.sql.ResultSet;//導(dǎo)入java.sql包下的ResultSet類
import java.sql.SQLException;//導(dǎo)入java.sql包下的SQLException類
import java.sql.Statement;//導(dǎo)入java.sql包下的Statement類
import java.util.Scanner;//導(dǎo)入java.util包下的Scanner類
public class Test666{//類名
public static void main(String[] args){//程序主函數(shù)
String driver="com.mysql.jdbc.Driver";//驅(qū)動(dòng)程序名
String url="jdbc:mysql://localhost:3306/mysql";//URL指向要訪問的數(shù)據(jù)庫名mysql
String user="root";//mysql配置時(shí)的用戶名
String password="root";//mysql配置時(shí)的密碼
while(true){//定義死循環(huán)
try{//try代碼塊,當(dāng)發(fā)生異常時(shí)會(huì)轉(zhuǎn)到catch代碼塊中
Class.forName(driver);//加載驅(qū)動(dòng)程序
Connection con=DriverManager.getConnection(url,user,password);//DriverManager.getConnection方法連接mysql數(shù)據(jù)庫
if(con!=null&&!con.isClosed())//if語句的條件
System.out.println("請輸入需要查詢的單詞:");//輸出提示信息
Statement statement=con.createStatement();//創(chuàng)建statement類對象執(zhí)行SQL語句
Scanner in=new Scanner(System.in);//創(chuàng)建scanner,控制臺(tái)會(huì)一直等待輸入,直到敲回車結(jié)束
String s=in.nextLine();//用戶通過控制臺(tái)輸入單詞
String sql="select * from english";//使用SQL語句進(jìn)行條件查詢
ResultSet rs=statement.executeQuery(sql);//ResultSet類用來存放獲取的結(jié)果
System.out.println("查詢結(jié)果如下所示:");//輸出提示信息
boolean b=false;//判斷表中是否含有輸入的詞
while(rs.next()){//while循環(huán),游標(biāo)向下移動(dòng)一行
String english=rs.getString("english");//獲取id這列數(shù)據(jù)
String chinese1=rs.getString("中文1");//獲取name這列數(shù)據(jù)
String chinese2=rs.getString("中文2");//獲取sex這列數(shù)據(jù)
String help=rs.getString("助記");//獲取age這列數(shù)據(jù)
if(s.equalsIgnoreCase(english)){//輸入單詞存在于表中則執(zhí)行
System.out.println(english+"\n"+chinese1+"\n"+chinese2+"\n"+help);//輸出對應(yīng)單詞全部信息
b=true;//布爾型變量為true
}
}
if(!b){//查不到該詞
System.out.println("沒有收錄該詞!");//輸出提示信息
}
rs.close();//關(guān)閉流
con.close();//關(guān)閉流
}catch(ClassNotFoundException e){//當(dāng)try代碼塊有異常時(shí)轉(zhuǎn)到catch代碼塊
System.out.println("對不起,未找到驅(qū)動(dòng)!");//輸出提示信息
e.printStackTrace();//打印異常所在位置及原因
}catch(SQLException e){//當(dāng)try代碼塊有異常時(shí)轉(zhuǎn)到catch代碼塊
e.printStackTrace();//打印異常所在位置及原因
}catch (Exception e){//當(dāng)try代碼塊有異常時(shí)轉(zhuǎn)到catch代碼塊
e.printStackTrace();//打印異常所在位置及原因
}finally{
System.out.println("----------------------------------------");//分割線
}
}
}
}
5)運(yùn)行結(jié)果如下:

4、總結(jié)
通過本博客不僅可以學(xué)習(xí)Java連接MySQL數(shù)據(jù)庫的方法,還可以學(xué)習(xí)Java對數(shù)據(jù)庫中一些數(shù)據(jù)的基本操作,自制一個(gè)單詞查詢小程序,如果對您有幫助的話麻煩關(guān)注一下博主,后續(xù)我還會(huì)陸續(xù)把其他的學(xué)習(xí)成果進(jìn)行分享。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Redis 訂閱發(fā)布_Jedis實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猂edis 訂閱發(fā)布_Jedis實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06
關(guān)于Java實(shí)體類Serializable序列化接口的作用和必要性解析
序列化是將對象狀態(tài)轉(zhuǎn)化為可保持或者傳輸?shù)母袷竭^程,與序列化相反的是反序列化,完成序列化和反序列化,可以存儲(chǔ)或傳輸數(shù)據(jù),一般情況下,在定義實(shí)體類時(shí)會(huì)使用Serializable,需要的朋友可以參考下2023-05-05
Java計(jì)算兩個(gè)日期時(shí)間之間的天數(shù)最簡方法
這篇文章給大家分享了Java計(jì)算兩個(gè)日期時(shí)間之間的天數(shù)最簡單的實(shí)現(xiàn)方法,有興趣的朋友可以參考學(xué)習(xí)下。2018-07-07
使用mybatis報(bào)Invalid bound statement解決分析
這篇文章主要為大家介紹了使用mybatis報(bào)Invalid bound statement原因解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12

