留言板开发
Java高级开发课程综合性、设计性实验报告
一、实验设计
1.所连接的MySQL数据库表结构
2.Java代码中对应的连接MySQL表:
3.UML图:
二、调试过程及结果
1.数据库已连接成功,但图形界面中的TextArea无法正确显示内容,通过设置在TextArea中追加显示可以解决问题。
2.数据库中插入数据时出现乱码,无法正确插入文本的编码字符,将字符集编码修正为utf-8resultset 遍历后可正常使用。
3.单击我要留言按钮后,在单击查看/刷新留言按钮,再单击提交留言按钮,会出现多行重复历史留言全部录入等情况,通过修改按钮显示来解决。
4.调试正确结果
a. 启动界面
        b.留言界面
        c.提交留言界面
        d.留言列表界面
e.留言列表与数据库中数据详情界面
        f.清除历史留言界面
三、实验小结
通过这次实验报告的完成,使我更加明确的掌握了javafx基础组件中的Button按钮、TextArea文本域,布局HBox、VBox,lambda处理动作事件表达式的使用方法及其功能,在连接到MySQL数据库时,应当在启动对应的数据库连接服务之后再运行相应的连接程序,否则会发生程序无法连接到数据库的问题出现。以及在使用Connection对象用来创建与指定数据源的连接,Microsoft SQL server、Oracle、MySQL之类的能够为其指明一个OLEDB提供程序或一个ODBC驱动器的数据源,如果Connection连接对象连接超出范围,并不会自动关闭。垃圾回收程序会收集该对象实例,但不会关闭连接,所以需要设定一个用来监听窗口时候关闭的事件来检测窗口是否已经关闭,当窗口已经关闭时,同时需要关闭Connection所连接的对象防止出现错误。在使用ResultSet类时需要注意所需要获取的数据库的表的结构范围,否则容易造成所访问的数据超出预期范围等情况,使用Statement类创建查询时需要注意要查询的字符串应当符合数据库中的查询字段,应尽量先在数据库中将语句测试完成,再使用java中的executeQuery、execute分别进行语句的查询,插入等操作。
Java的三种异常处理方式:通过try、catch捕获异常通过throws抛出异常throw关键字抛出异常
四、源程序清单
源代码清单(MessageBook.java):
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import l.Button;
import l.TextArea;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;
import java.sql.*;
import java.util.Collections;
import urrent.atomic.AtomicReference;
public class MessageBook extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        // 添加按钮
        Button b1 = new Button("查看/刷新留言");
        Button b2 = new Button("我要留言");
        Button b3 = new Button("清除历史留言");
        Button b4 = new Button("提交留言");
        // 设置按钮大小
        b1.setMinSize(150, 25);
        b2.setMinSize(150, 25);
        b3.setMinSize(150, 25);
        b4.setMinSize(150, 25);
        // 添加文本域
        TextArea ta = new TextArea();
        // 设置文本域自动换行
        ta.setWrapText(true);
        // 设置文本域大小
        ta.setMinSize(450, 575);
        // 创建水平盒子,放置按钮
        HBox hBox = new HBox();
        Children().addAll(b1, b2, b3);
        // 创建垂直盒子,放置所有组件
        VBox vBox = new VBox();
        Children().addAll(hBox, ta);
        // 加载 JDBC 驱动程序
        Class.forName("sql.jdbc.Driver");
        System.out.println("驱动程序已加载");
        // 建立连接
        Connection connection = Connection
                ("jdbc:mysql://localhost/test", "root", "");
        System.out.println("数据库已连接");
        // 建立陈述
        Statement statement = ateStatement();
        // 执行语句,通过 statement 语句执行

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。