您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > java课设报告-基于数据库的电子词典
1课程设计报告课程名称:java.班级:学号:姓名:完成日期:2009、11、16沈阳航空工业学院北方软件学院4北方软件学院课程设计任务书专业名称:计算机科学与技术课程名称:Java课程设计设计题目:基于数据库的词典工具起止时间:问题描述:实现一个基于数据库电子词典,输入一个词汇后能在数据库中检索出该词的解释,并显示出来。基本要求:要求使用MySQL做为后台存储数据库,使用JavaGUI的方法,具有联想功能。用户可以添加词汇和解释,可以定义定制常用词汇列表。较高要求:在查词框的下拉列表中能显示历史查词记录。实现提示学生姓名:学号:指导教师:5基于数据库的词典工具1概要设计(1)程序分析:用java程序编写一个基于数据库的词典工具,实现一个基于数据库电子词典,输入一个词汇后能在数据库中检索出该词的解释,并显示出来。要求使用MySQL做为后台存储数据库,使用JavaGUI的方法,具有联想功能。用户可以添加词汇和解释,可以定义定制常用词汇列表。(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?useUniCode=true&characterEncoding=utf-8”);2、执行SQL语句6在所建立的数据库连接上,创建Statement对象,对各种SQL语句发送到所连接的数据库执行。对于已创建的的数据库连接对象,调用creatStatement()方法,便可得到一个Statement对象。例如:Statementstmt=con.creatStatement();接下来就可以通过该Statement对象发送SQL语句。对于SQL的检索操作,使用Statement的ExecuteQuery()方法,对于更新操作,使用ExecuteUpdate()方法。本程序中用到的SQL的更新添加和查询操作,定义如下:ResultSetrs=stmt.executeQuery(select*fromtest);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?useUniCode=true&characterEncoding=utf-8);stmt=con.createStatement();…stmt.close();con.close();(2)各模块功能1、GUI设计:首先设计并创建一个顶层容器,例如一个Frame;确定容器要采用的布局管理器,并把该类型的布局管理器设置到容器中;创建所需组件,可以设置或改变组件颜色、字体,并把它们添加到容器中;最后添加组件的时间处理,使GUI能够响7应用户的操作,实现与用户的交互功能。相关代码如下:super(英汉小词典);setBounds(150,150,300,120);setVisible(true);setLayout(newGridLayout(3,1));…select_bt.addActionListener(this);update_bt.addActionListener(this);add_bt.addActionListener(this);…publicvoidactionPerformed(ActionEvente){}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、更新功能:首先连接数据库。连接成功进行更新功能,实现更新的关键代码:Stringsql=updatetestsetjs=+s2+wheredc=+s1;stmt.executeUpdate(sql);4、添加功能:首先连接数据库,连接成功进行添加功能,实现添加的关键代码:Stringsql=insertintotestvalues(+s1+,+s2+);stmt.executeUpdate(sql);5、流程图8开始数据库连接是否成功?更新输入单词和解释结束是否更新功能流程图开始数据库连接是否成功?添加输入单词和解释结束是否添加功能流程图9开始数据库连接是否成功?查询是否查询出该单词?输入单词显示单词结束没有该单词是是否否查询功能流程图3调试报告在程序调试中最大的问题就是数据库连接着一部分,由于对数据库的知识比较陌生,所以调试起来遇到了很多麻烦和问题,简单总结如下:(1)数据库的廉洁就分为驱动连接和桥连接,这里容易混淆,需要将其区分开来,老师建议用驱动加载更好一些。(2)注意关闭数据库连接,要注意在关闭连接时先释放Statement对象,这一点也容易忽略。(3)在加载数据库驱动程序中,该方法可能抛出ClassNotFoundException异常,所以在调用该方法时要注意进行异常处理。(4)注意Java程序的编码规范,以及注意事项。104测试结果(1)查询功能输入您想要查询的单词,然后点击查询。如图:如果test表中有该单词,则:如果test表中没有该单词,则:(2)更新功能输入想要更新的单词,输入该英语单词更新的汉语解释,然后点击更新。如图:(3)添加功能输入想要添加的单词和解释,然后点击添加,如图:115使用说明这个英汉小词典的小程序,主要有三个小功能:即查询、更新、添加。(1)首先介绍查询功能,根据标签提示输入想要查询的英语单词,然后点击查询,如果查询到该单词,则在显示英语单词的汉语解释的地方就会显示出相应的汉语解释。如果没有找到您想要查询的单词则,显示没有该单词。具体演示如下:输入要查询的单词,点击查询。如果没有查到,则:如果查到输入的单词,则:(2)然后介绍更新功能,根据提示输入英语单词,和该英语单词更新的汉语解释,然后点击更新就能在test表中更新该单词的解释。(3)最后介绍添加功能,即插入功能,根据提示输入英语单词,和汉语解释,然后点击添加就能在test表中插入一行新的数据。6总结大三上学期的学习伴随着课程设计的结束也进入了尾声,对于课程设计已经并不陌生,而且通过不断的学习,我觉得课程设计真的是一门能够非常有效的巩固和提高所学科目的一门课程,通过动手编程操作,从实际问题中理解书本中学到的知识,而且这也是一次锻炼自己自学能力的良好机会。而且我们的辅导老师也非常的认真负责,每次课程开始和结束都会进行点12名,以此来避免我们的惰性,使得我们都来上机,都能学到东西,养成了良好的课堂风气。而且老师对于我们出现的问题也虚心解答,循序渐进。为我们讲解所涉及的知识点,让我们能够充分理解之后自己进行调试,所以也要感谢辅导老师的辛苦付出,虽然我们不能保证我们的程序非常完美,但至少我们每个人都能在这次课程设计中学到了知识,让我们对Java的知识有了进一步的巩固和了解。我这次课程设计的题目是基于数据库的词典工具,需要实现三个功能:查找、更新、添加。用到数据库的相关知识比较多,首先要先明确怎样使用JDBC数据库进行操作。成绩:预习报告分,系统分,课设报告分,总分分,总评:评语:批阅教师签字:年月日
本文标题:java课设报告-基于数据库的电子词典
链接地址:https://www.777doc.com/doc-61566 .html