JAVA程序设计 实验六 数据库编程

《Java程序设计》实 验 报 告(六)

实验名称: 数据库编程

实验地点:10-413

开发语言及实现平台或实验环境

环境:Windows7;JDK1.6

工具:eclipse

实验目的:

  1. 掌握创建数据库应用程序的各个重要环节。
  2. 掌握使用JDBC API提供的接口和类进行连接mysql数据库,执行SQL语句,处理结果集等操作。

项目内容介绍:

先建立一个某单位的员工工资数据库,在此基础上通过编程实现以下功能:

  1. 在数据库中建立一个员工信息表,表名为员工,其结构为:编、姓名、性别、年龄、职称、工资、是否党员;
  2. 在表中输入若干数据记录(“职称”可分为高中低三级,其他数据自己设计);
  3. 删除年龄超过60岁的员工记录;
  4. 修改职称为高级且为党员的员工的工资设为3000;
  5. 在表中查询所有记录显示到屏幕上。

源程序:

import java.sql.*;

public class EmployeeDatabase {
    // 数据库连接信息
    private static final String URL = "jdbc:mysql://localhost:3306/employee_salaries";
    private static final String USERNAME = "root";
    private static final String PASSWORD = "123456";

    public static void main(String[] args) {

        try (Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD)) {
            //删除现有的"员工"表。如果表存在,它将被删除;如果不存在,则不会产生任何影响。
            dropEmployeeTable(connection);
            // 创建员工信息表-
            createEmployeeTable(connection);

            // 插入数据记录
            insertData(connection);

            // 删除年龄超过60岁的员工记录
            deleteSeniorEmployees(connection);

            // 修改职称为高级且为党员的员工工资为3000
            updateSalary(connection);

            // 查询所有员工信息并显示到屏幕上
            displayEmployees(connection);

        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    private static void dropEmployeeTable(Connection connection) throws SQLException {
        String dropTableQuery = "DROP TABLE IF EXISTS 员工";

        try (Statement statement = connection.createStatement()) {
            statement.executeUpdate(dropTableQuery);
            System.out.println("原有员工信息表删除成功");
        }
    }

    private static void createEmployeeTable(Connection connection) throws SQLException {
        String createTableQuery = "CREATE TABLE IF NOT EXISTS 员工 (" +
                "编 INT PRIMARY KEY, " +
                "姓名 VARCHAR(50), " +
                "性别 VARCHAR(10), " +
                "年龄 INT, " +
                "职称 VARCHAR(20), " +
                "工资 FLOAT, " +
                "是否党员 BOOLEAN)";

        try (Statement statement = connection.createStatement()) {
            statement.executeUpdate(createTableQuery);
            System.out.println("员工信息表创建成功");
        }
    }

    private static void insertData(Connection connection) throws SQLException {
        String insertQuery = "INSERT INTO 员工 (编, 姓名, 性别, 年龄, 职称, 工资, 是否党员) VALUES (?, ?, ?, ?, ?, ?, ?)";

        try (PreparedStatement preparedStatement = connection.prepareStatement(insertQuery)) {
            // 第一条数据记录
            preparedStatement.setInt(1, 1);
            preparedStatement.setString(2, "张三");
            preparedStatement.setString(3, "男");
            preparedStatement.setInt(4, 35);
            preparedStatement.setString(5, "高级");
            preparedStatement.setFloat(6, 5000);
            preparedStatement.setBoolean(7, true);
            preparedStatement.executeUpdate();

            // 第二条数据记录
            preparedStatement.setInt(1, 2);
            preparedStatement.setString(2, "李四");
            preparedStatement.setString(3, "女");
            preparedStatement.setInt(4, 45);
            preparedStatement.setString(5, "中级");
            preparedStatement.setFloat(6, 4000);
            preparedStatement.setBoolean(7, false);
            preparedStatement.executeUpdate();

            // 第三条数据记录
            preparedStatement.setInt(1, 3);
            preparedStatement.setString(2, "王五");
            preparedStatement.setString(3, "男");
            preparedStatement.setInt(4, 55);
            preparedStatement.setString(5, "低级");
            preparedStatement.setFloat(6, 2500);
            preparedStatement.setBoolean(7, true);
            preparedStatement.executeUpdate();

            // 第四条数据记录
            preparedStatement.setInt(1, 4);
            preparedStatement.setString(2, "赵六");
            preparedStatement.setString(3, "女");
            preparedStatement.setInt(4, 28);
            preparedStatement.setString(5, "中级");
            preparedStatement.setFloat(6, 4500);
            preparedStatement.setBoolean(7, false);
            preparedStatement.executeUpdate();

            // 第五条数据记录
            preparedStatement.setInt(1, 5);
            preparedStatement.setString(2, "钱七");
            preparedStatement.setString(3, "男");
            preparedStatement.setInt(4, 32);
            preparedStatement.setString(5, "高级");
            preparedStatement.setFloat(6, 6000);
            preparedStatement.setBoolean(7, true);
            preparedStatement.executeUpdate();

            // 第六条数据记录
            preparedStatement.setInt(1, 6);
            preparedStatement.setString(2, "周八");
            preparedStatement.setString(3, "男");
            preparedStatement.setInt(4, 66);
            preparedStatement.setString(5, "低级");
            preparedStatement.setFloat(6, 3500);
            preparedStatement.setBoolean(7, false);
            preparedStatement.executeUpdate();

            System.out.println("数据记录插入成功");
        }
    }


    private static void deleteSeniorEmployees(Connection connection) throws SQLException {
        String deleteQuery = "DELETE FROM 员工 WHERE 年龄 > 60";

        try (Statement statement = connection.createStatement()) {
            int deletedRows = statement.executeUpdate(deleteQuery);
            System.out.println("已删除年龄超过60岁的员工记录,共 " + deletedRows + " 条记录");
        }
    }

    private static void updateSalary(Connection connection) throws SQLException {
        String updateQuery = "UPDATE 员工 SET 工资 = 3000 WHERE 职称 = '高级' AND 是否党员 = true";

        try (Statement statement = connection.createStatement()) {
            int updatedRows = statement.executeUpdate(updateQuery);
            System.out.println("已更新职称为高级且为党员的员工工资为3000,共 " + updatedRows + " 条记录");
        }
    }

    private static void displayEmployees(Connection connection) throws SQLException {
        String selectQuery = "SELECT * FROM 员工";

        try (Statement statement = connection.createStatement();
             ResultSet resultSet = statement.executeQuery(selectQuery)) {

            System.out.println("所有员工信息:");
            System.out.println("编\t姓名\t性别\t年龄\t职称\t工资\t是否党员");
            while (resultSet.next()) {
                int 编 = resultSet.getInt("编");
                String 姓名 = resultSet.getString("姓名");
                String 性别 = resultSet.getString("性别");
                int 年龄 = resultSet.getInt("年龄");
                String 职称 = resultSet.getString("职称");
                float 工资 = resultSet.getFloat("工资");
                boolean 是否党员 = resultSet.getBoolean("是否党员");

                System.out.println(编 + "\t" + 姓名 + "\t" + 性别 + "\t" + 年龄 + "\t" + 职称 + "\t" + 工资 + "\t" + 是否党员);
            }
        }
    }
}

实验结果:

该程序是一个简单的员工数据库管理系统。它连接到一个MySQL数据库,执行各种操作,如创建表格、插入数据、删除记录、更新工资和显示员工信息。

以下是代码的解析:

1.代码导入了必要的Java SQL包,以便与数据库进行交互。

2.EmployeeDatabase类包含了主方法,其中执行数据库操作。

3.URL、用户名和密码变量保存了MySQL数据库的连接信息。

4.main方法使用连接信息建立与数据库的连接。

5.dropEmployeeTable方法如果存在,则删除现有的"员工"表。

6.createEmployeeTable方法如果不存在,则创建"员工"表。

7.insertData方法向"员工"表中插入示例员工记录。

8.deleteSeniorEmployees方法删除年龄大于60的员工记录。

9.updateSalary方法将职称为"高级"且为党员的员工的工资更新为3000。

10.displayEmployees方法从"员工"表中检索所有员工记录并在屏幕上显示。

在main方法中,按顺序调用了删除表、创建表、插入数据、删除记录、更新工资和显示员工的方法。

在数据库操作期间,会捕获并打印到控制台的任何SQLException。

实验结果如下:

(1)插入数据内容

编 姓名 性别 年龄 职称 工资 是否党员

1  张三  男  35  高级  5000  true

2  李四  女  45  中级  4000  false

3  王五  男  55  低级  2500  true

4  赵六  女  28  中级  4500  false

5  钱七  男  32  高级  6000  true

6  周八  男  66  低级  3500  false

(2)程序运行后

收获与体会:

在进行数据库编程的实验过程中,我学到了许多关于创建数据库应用程序的重要环节,并掌握了使用JDBC API提供的接口和类来连接MySQL数据库、执行SQL语句以及处理结果集的操作。以下是我在实验中的收获和体会:

熟悉数据库创建过程:通过实验,我学会了创建数据库应用程序的重要环节。首先,我了解了数据库的概念和作用,并学会了使用SQL语言创建表格和定义表格结构。在这个实验中,我创建了一个名为"员工"的表格,定义了表格的各个字段,如编码、姓名、性别、年龄、职称、工资和是否党员。

掌握数据库连接和操作:使用JDBC API,我成功地连接了MySQL数据库,并学会了执行各种SQL语句来操作数据库。在实验中,我通过JDBC建立了与数据库的连接,并执行了插入数据、删除记录、更新数据和查询数据等操作。这让我更加熟悉了数据库编程的过程。

数据库操作的灵活性:通过实验,我认识到数据库编程具有很大的灵活性。我可以根据实际需求,设计和执行各种SQL语句,对数据库中的数据进行增删改查操作。例如,在本实验中,我通过SQL语句删除了年龄超过60岁的员工记录,修改了职称为高级且为党员的员工的工资,并查询了所有员工的信息。这种灵活性使得数据库编程成为一个非常强大和实用的工具。

数据库管理的重要性:实验过程中,我意识到数据库管理对于一个组织或企业的数据管理至关重要。一个良好设计和维护的数据库可以提高数据的存储效率、可靠性和安全性。同时,合理的数据库结构和优化的查询语句能够提升数据库的性能。因此,数据库编程不仅仅是操作数据,更是需要考虑到数据库的整体管理和优化。

总的来说,通过这次数据库编程的实验,我掌握了创建数据库应用程序的重要环节,熟悉了使用JDBC API连接MySQL数据库并执行SQL语句的操作,体会到了数据库操作的灵活性和数据库管理的重要性。这些经验和知识将对我今后的编程和数据管理工作产生积极的影响,并为我进一步深入学习和探索数据库领域奠定了基础。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值