Java 个人简历系统开发教程:数据库连接与数据操作

本教程将带您使用 Java 和数据库技术构建一个简单的个人简历系统,涵盖简历信息录入、浏览、查询、修改和删除等功能。学习 Java 与数据库的交互方式,实现数据存储和检索。

功能需求

  1. 个人简历信息录入功能:输入个人简历信息。
  2. 增加个人简历信息:将新简历信息添加到系统。
  3. 个人简历信息浏览:输出已存储的简历信息。
  4. 按身份证号查询信息:根据身份证号查找对应简历信息。
  5. 个人简历信息删除:从系统中删除指定简历信息。
  6. 个人简历信息修改:更新已存在的简历信息。
  7. 数据保存:将简历信息存储到数据库中。
  8. 数据读取:从数据库中读取简历信息。

代码示例

1. 创建数据库表

CREATE TABLE `resume` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `gender` varchar(10) NOT NULL,
  `birthday` date NOT NULL,
  `id_number` varchar(18) NOT NULL,
  `phone` varchar(20) NOT NULL,
  `email` varchar(50) NOT NULL,
  `address` varchar(100) NOT NULL,
  `education` varchar(50) NOT NULL,
  `major` varchar(50) NOT NULL,
  `experience` varchar(500) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id_number` (`id_number`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

2. 创建 Java 类

Resume.java
public class Resume {
    private int id;
    private String name;
    private String gender;
    private Date birthday;
    private String idNumber;
    private String phone;
    private String email;
    private String address;
    private String education;
    private String major;
    private String experience;

    // getters and setters
}
ResumeDAO.java
public class ResumeDAO {
    private Connection conn;

    public ResumeDAO() {
        try {
            Class.forName('com.mysql.jdbc.Driver');
            conn = DriverManager.getConnection('jdbc:mysql://localhost/resume', 'username', 'password');
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }
    }

    public void addResume(Resume resume) {
        try {
            PreparedStatement ps = conn.prepareStatement('INSERT INTO resume (name, gender, birthday, id_number, phone, email, address, education, major, experience) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
            ps.setString(1, resume.getName());
            ps.setString(2, resume.getGender());
            ps.setDate(3, new java.sql.Date(resume.getBirthday().getTime()));
            ps.setString(4, resume.getIdNumber());
            ps.setString(5, resume.getPhone());
            ps.setString(6, resume.getEmail());
            ps.setString(7, resume.getAddress());
            ps.setString(8, resume.getEducation());
            ps.setString(9, resume.getMajor());
            ps.setString(10, resume.getExperience());
            ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public List<Resume> getAllResumes() {
        List<Resume> resumes = new ArrayList<>();
        try {
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery('SELECT * FROM resume');
            while (rs.next()) {
                Resume resume = new Resume();
                resume.setId(rs.getInt('id'));
                resume.setName(rs.getString('name'));
                resume.setGender(rs.getString('gender'));
                resume.setBirthday(rs.getDate('birthday'));
                resume.setIdNumber(rs.getString('id_number'));
                resume.setPhone(rs.getString('phone'));
                resume.setEmail(rs.getString('email'));
                resume.setAddress(rs.getString('address'));
                resume.setEducation(rs.getString('education'));
                resume.setMajor(rs.getString('major'));
                resume.setExperience(rs.getString('experience'));
                resumes.add(resume);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return resumes;
    }

    public Resume getResumeByIdNumber(String idNumber) {
        try {
            PreparedStatement ps = conn.prepareStatement('SELECT * FROM resume WHERE id_number = ?');
            ps.setString(1, idNumber);
            ResultSet rs = ps.executeQuery();
            if (rs.next()) {
                Resume resume = new Resume();
                resume.setId(rs.getInt('id'));
                resume.setName(rs.getString('name'));
                resume.setGender(rs.getString('gender'));
                resume.setBirthday(rs.getDate('birthday'));
                resume.setIdNumber(rs.getString('id_number'));
                resume.setPhone(rs.getString('phone'));
                resume.setEmail(rs.getString('email'));
                resume.setAddress(rs.getString('address'));
                resume.setEducation(rs.getString('education'));
                resume.setMajor(rs.getString('major'));
                resume.setExperience(rs.getString('experience'));
                return resume;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    public void deleteResumeByIdNumber(String idNumber) {
        try {
            PreparedStatement ps = conn.prepareStatement('DELETE FROM resume WHERE id_number = ?');
            ps.setString(1, idNumber);
            ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public void updateResumeByIdNumber(String idNumber, Resume newResume) {
        try {
            PreparedStatement ps = conn.prepareStatement('UPDATE resume SET name = ?, gender = ?, birthday = ?, id_number = ?, phone = ?, email = ?, address = ?, education = ?, major = ?, experience = ? WHERE id_number = ?');
            ps.setString(1, newResume.getName());
            ps.setString(2, newResume.getGender());
            ps.setDate(3, new java.sql.Date(newResume.getBirthday().getTime()));
            ps.setString(4, newResume.getIdNumber());
            ps.setString(5, newResume.getPhone());
            ps.setString(6, newResume.getEmail());
            ps.setString(7, newResume.getAddress());
            ps.setString(8, newResume.getEducation());
            ps.setString(9, newResume.getMajor());
            ps.setString(10, newResume.getExperience());
            ps.setString(11, idNumber);
            ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public void close() {
        try {
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

3. 编写测试代码

public class Main {
    public static void main(String[] args) {
        ResumeDAO dao = new ResumeDAO();

        // 添加一条简历信息
        Resume resume = new Resume();
        resume.setName('张三');
        resume.setGender('男');
        resume.setBirthday(new Date(1990, 1, 1));
        resume.setIdNumber('110101199001010001');
        resume.setPhone('13800000001');
        resume.setEmail('zhangsan@example.com');
        resume.setAddress('北京市朝阳区');
        resume.setEducation('本科');
        resume.setMajor('计算机科学与技术');
        resume.setExperience('2012年-2016年,就读于XX大学,获得计算机科学与技术本科学位');
        dao.addResume(resume);

        // 获取所有简历信息
        List<Resume> resumes = dao.getAllResumes();
        for (Resume r : resumes) {
            System.out.println(r.getName() + ' ' + r.getGender() + ' ' + r.getIdNumber());
        }

        // 根据身份证号查询简历信息
        Resume r = dao.getResumeByIdNumber('110101199001010001');
        if (r != null) {
            System.out.println(r.getName() + ' ' + r.getGender() + ' ' + r.getIdNumber());
        }

        // 更新简历信息
        Resume newResume = new Resume();
        newResume.setName('李四');
        newResume.setGender('女');
        newResume.setBirthday(new Date(1995, 1, 1));
        newResume.setIdNumber('110101199501010001');
        newResume.setPhone('13800000002');
        newResume.setEmail('lisi@example.com');
        newResume.setAddress('北京市海淀区');
        newResume.setEducation('硕士');
        newResume.setMajor('软件工程');
        newResume.setExperience('2014年-2017年,就读于XX大学,获得软件工程硕士学位');
        dao.updateResumeByIdNumber('110101199001010001', newResume);

        // 删除简历信息
        dao.deleteResumeByIdNumber('110101199501010001');

        dao.close();
    }
}

代码说明

  • Resume 类表示简历信息,包含姓名、性别、出生日期、身份证号、电话、邮箱、地址、学历、专业和工作经历等属性。
  • ResumeDAO 类封装了数据库操作方法,包括添加简历、获取所有简历、根据身份证号查询简历、删除简历和更新简历等。
  • Main 类提供了测试代码,演示了如何使用 ResumeDAO 类进行数据库操作。

总结

本教程提供了一个简单的 Java 个人简历系统示例,展示了如何使用 Java 和数据库技术进行数据存储和检索。您可以根据实际需求进行扩展和改进。

相关资源

Java 个人简历系统开发教程:数据库连接与数据操作

原文地址: https://www.cveoy.top/t/topic/orJ1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录