Java 个人简历系统开发教程:数据库连接与数据操作
Java 个人简历系统开发教程:数据库连接与数据操作
本教程将带您使用 Java 和数据库技术构建一个简单的个人简历系统,涵盖简历信息录入、浏览、查询、修改和删除等功能。学习 Java 与数据库的交互方式,实现数据存储和检索。
功能需求
- 个人简历信息录入功能:输入个人简历信息。
- 增加个人简历信息:将新简历信息添加到系统。
- 个人简历信息浏览:输出已存储的简历信息。
- 按身份证号查询信息:根据身份证号查找对应简历信息。
- 个人简历信息删除:从系统中删除指定简历信息。
- 个人简历信息修改:更新已存在的简历信息。
- 数据保存:将简历信息存储到数据库中。
- 数据读取:从数据库中读取简历信息。
代码示例
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 和数据库技术进行数据存储和检索。您可以根据实际需求进行扩展和改进。
相关资源
原文地址: https://www.cveoy.top/t/topic/orJ1 著作权归作者所有。请勿转载和采集!