java课设报告基于数据库的电子词典
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
java课设报告基于数据库的电子词典
报告
课程名称:java .
班级:
学号:
姓名:
完成日期:2020、11、16
沈阳航空工业学院
北方软件学院
北方软件学院
课程设计任务书
专业名称:运算机科学与技术
课程名称:Java课程设计
设计题目:基于数据库的词典工具
起止时刻:
问题描述:
实现一个基于数据库电子词典,输入一个词汇后能在数据库中检索出该词的说明,并显示出来。
差不多要求:
要求使用MySQL做为后台储备数据库,使用Java GUI的方法,具有联想功能。
用户能够添加词汇和说明,能够定义定制常用词汇列表。
较高要求:
在查词框的下拉列表中能显示历史查词记录。
实现提示
学生姓名:学号:指导教师:
基于数据库的词典工具
1概要设计
(1)程序分析:用java程序编写一个基于数据库的词典工具,实现一个基于数据库电子词典,输入一个词汇后能在数据库中检索出该词的说明,
并显示出来。
要求使用MySQL做为后台储备数据库,使用Java GUI的
方法,具有联想功能。
用户能够添加词汇和说明,能够定义定制常用词
汇列表。
(2)用到的工具:MySQL-Front〔SQL编辑器〕,MySQL做为后台数据库。
(3)模块图:
2详细设计
(1)数据库的相关知识:利用JDBC开发数据库应用一样包括如下步骤:
1、建立与数据库的连接
数据库连接的建立包括两个步骤:第一要加载相应数据库的JDBC驱动程序;然后建立连接。
Class.forName()方法的执行,将创建数据库驱动的实例并注册到驱动治理器。
在某种数据库的驱动程序加载后,就能够建立与该DBMS的连接了。
定义如下: Class.forName(〞com.mysql.jdbc.Driver〞);
创建数据库连接那个步骤中要使数据库驱动连接到相应的DBMS。
连接的建立通过使用DriverManager类中的static方法getConnection(),该方法的定义如下:
Con=DriverManager.getConnection(〝jdbc:mysql://10.20.2.14/KEMDB?useUn iCode=true&characterEncoding=utf-8”);
2、执行SQL语句
在所建立的数据库连接上,创建Statement对象,对各种SQL语句发送到所连接的数据库执行。
关于已创建的的数据库连接对象,调用creatStatement〔〕方法,便可得到一个Statement对象。
例如:Statement stmt=con.creatStatement〔〕;
接下来就能够通过该Statement对象发送SQL语句。
关于SQL的检索操作,使用Statement的ExecuteQuery()方法,关于更新操作,使用ExecuteUpdate()方法。
本程序中用到的SQL的更新添加和查询操作,定义如下:
ResultSet rs = stmt.executeQuery("select * from test");
stmt.executeUpdate(sql);
3、处理结果集
结果集是储存SQL的SELECT语句返回的结果记录的表,是ResultSet类的对象。
使用ResultSet类的next〔〕方法将游标移到下一行,并将该行作为能够操作的当前行。
假如当前行差不多是结果集中的最后一行,那么调用next〔〕方法将返回false,否那么返回true。
因为一个结果集中游标的的初始位置是在第一行记录之前,因此第一次对next()方法的调用将把游标移到第一行。
格式例如:
while(rs.next()){
ename = rs.getString(2);
cname = rs.getString(3);
if(ename.equals(tf1.getText().trim())){
tf2.setText(cname);
b=1;
break;
}
}
4、关闭数据库连接
在数据库所有操作都完成后,要显示的关闭连接。
一样在关闭连接时先开释Statement对象,例如:
con=DriverManager.getConnection("jdbc:mysql://10.20.2.14/KEMDB?useUniCo de=true&characterEncoding=utf-8");
stmt = con.createStatement();
…
stmt.close();
con.close();
〔2〕各模块功能
1、GUI设计:第一设计并创建一个顶层容器,例如一个Frame;确定容器要采纳的布局治理器,并把该类型的布局治理器设置到容器中;创建所需组件,能够设置或改变
组件颜色、字体,并把它们添加到容器中;最后添加组件的时刻处理,使GUI能够响应用户的操作,实现与用户的交互功能。
相关代码如下:
super("英汉小词典");
setBounds(150,150,300,120);
setVisible(true);
setLayout(new GridLayout(3,1));
…
select_bt.addActionListener(this);
update_bt.addActionListener(this);
add_bt.addActionListener(this);
…
public void actionPerformed(ActionEvent e){}
2、查找功能:第一要先连接数据库,连接成功那么进行查找功能,实现查找功能的关键代码如下:
while(rs.next()){
ename = rs.getString("dc");
cname = rs.getString("js");
if(ename.equals(tf1.getText().trim())){
tf2.setText(cname);
b=1;
break;
}
}
3、更新功能:第一连接数据库。
连接成功进行更新功能,实现更新的关键代码:String sql = "update test set js = "+s2+" where dc ="+s1; stmt.executeUpdate(sql);
4、添加功能:第一连接数据库,连接成功进行添加功能,实现添加的关键代码:String sql = "insert into test values("+s1+","+s2+")";
stmt.executeUpdate(sql);
5、流程图
添加功能流程图
查询功能流程图
3调试报告
在程序调试中最大的问题确实是数据库连接着一部分,由于对数据库的知识比较生疏,因此调试起来遇到了专门多苦恼和问题,简单总结如下:
(1)数据库的廉洁就分为驱动连接和桥连接,那个地点容易混淆,需要将其区分开来,老师建议用驱动加载更好一些。
(2)注意关闭数据库连接,要注意在关闭连接时先开释Statement对象,这一点也容易忽略。
(3)在加载数据库驱动程序中,该方法可能抛出ClassNotFoundException 专门,因此在调用该方法时要注意进行专门处理。
(4)注意Java程序的编码规范,以及本卷须知。
4测试结果
〔1〕查询功能
输入您想要查询的单词,然后点击查询。
如图:
假如test表中有该单词,那么:
假如test表中没有该单词,那么:
〔2〕更新功能
输入想要更新的单词,输入该英语单词更新的汉语说明,然后点击更新。
如图:
〔3〕添加功能
输入想要添加的单词和说明,然后点击添加,如图:
5 使用说明
那个英汉小词典的小程序,要紧有三个小功能:即查询、更新、添加。
〔1〕第一介绍查询功能,依照标签提示输入想要查询的英语单词,然后点击查询,假如查询到该单词,那么在显示英语单词的汉语说明的地点就会显示出相应的汉语说明。
假如没有找到您想要查询的单词那么,显示没有该单词。
具体演示如下:
输入要查询的单词,点击查询。
假如没有查到,那么:
假如查到输入的单词,那么:
〔2〕然后介绍更新功能,依照提示输入英语单词,和该英语单词更新的汉语说明,然后点击更新就能在test表中更新该单词的说明。
〔3〕最后介绍添加功能,即插入功能,依照提示输入英语单词,和汉语说明,然后点击添加就能在test表中插入一行新的数据。
6总结
大三上学期的学习相伴着课程设计的终止也进入了尾声,关于课程设计差不多并不生疏,而且通过不断的学习,我觉得课程设计确实是一门能够专门有效的巩固和提高所学科目的一门课程,通过动手编程操作,从实际问题中明白得书本中学到的知识,而且这也是一次锤炼自己自学能力的良好机会。
而且我们的辅导老师也专门的认真负责,每次课程开始和终止都会进行点
名,以此来幸免我们的惰性,使得我们都来上机,都能学到东西,养成了良好的课堂风气。
而且老师关于我们显现的问题也虚心解答,循序渐进。
为我们讲解所涉及的知识点,让我们能够充分明白得之后自己进行调试,因此也要感谢辅导老师的辛劳付出,尽管我们不能保证我们的程序专门完美,但至少我们每个人都能在这次课程设计中学到了知识,让我们对Java的知识有了进一步的巩固和了解。
我这次课程设计的题目是基于数据库的词典工具,需要实现三个功能:查找、更新、添加。
用到数据库的相关知识比较多,第一要先明确如何样使用JDBC 数据库进行操作。