通讯录系统Java程序MySQL
通讯录系统是一种用于管理联系人信息的应用程序。Java是一种广泛应用于开发各种类型应用程序的编程语言,而MySQL是一种关系型数据库管理系统。在本文中,将介绍如何使用Java编写一个通讯录系统,并使用MySQL数据库存储联系人信息。
数据库设计
在开始编写Java程序之前,首先需要设计数据库模式来存储联系人信息。在通讯录系统中,每个联系人具有姓名、电话号码和电子邮件地址等属性。可以创建一个名为“contacts”的表来存储联系人信息,表的结构如下:
CREATE TABLE contacts (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
phone VARCHAR(20) NOT NULL,
email VARCHAR(100) NOT NULL
);
在该表中,id是一个自增主键,每个联系人都有一个唯一的ID。name、phone和email分别用于存储联系人的姓名、电话号码和电子邮件地址。
Java程序设计
接下来,可以使用Java编写通讯录系统的程序。首先,需要创建一个Contact类来表示联系人对象,代码如下:
public class Contact {
private int id;
private String name;
private String phone;
private String email;
public Contact(int id, String name, String phone, String email) {
this.id = id;
this.name = name;
this.phone = phone;
this.email = email;
}
// 省略getter和setter方法
}
在该类中,id、name、phone和email分别对应联系人的ID、姓名、电话号码和电子邮件地址。还可以为Contact类添加getter和setter方法来访问和修改联系人属性。
接下来,可以创建一个ContactDao类来处理联系人的数据库操作,包括插入联系人、删除联系人和查询联系人等。代码如下:
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class ContactDao {
private Connection connection;
public ContactDao() {
try {
// 连接数据库
String url = "jdbc:mysql://localhost:3306/contacts";
String username = "root";
String password = "password";
connection = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void insertContact(Contact contact) {
try {
String query = "INSERT INTO contacts (name, phone, email) VALUES (?, ?, ?)";
PreparedStatement statement = connection.prepareStatement(query);
statement.setString(1, contact.getName());
statement.setString(2, contact.getPhone());
statement.setString(3, contact.getEmail());
statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void deleteContact(int id) {
try {
String query = "DELETE FROM contacts WHERE id=?";
PreparedStatement statement = connection.prepareStatement(query);
statement.setInt(1, id);
statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public List<Contact> getAllContacts() {
List<Contact> contacts = new ArrayList<>();
try {
String query = "SELECT * FROM contacts";
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(query);
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
String phone = resultSet.getString("phone");
String email = resultSet.getString("email");
Contact contact = new Contact(id, name, phone, email);
contacts.add(contact);
}
} catch (SQLException e) {
e.printStackTrace();
}
return contacts;
}
}
在ContactDao类中,首先使用JDBC连接到MySQL数据库。可以通过修改url、username和password变量来适应自己的数据库配置。然后,提供了insertContact、deleteContact和getAllContacts等方法来插入联系人、删除联系人和查询所有联系人。
最后,可以创建一个Main类来演示如何使用ContactDao类来操作联系人。代码如下:
public class Main {
public static void main(String[] args) {
ContactDao contactDao = new ContactDao();
// 插入联系人
Contact contact1 = new Contact(1, "张三", "123456789", "zhangsan@example.com");
contactDao.insertContact(contact1);
Contact contact2 = new Contact(2, "李四", "987654321", "lisi@example.com");
contactDao.insertContact(contact2);
// 查询所有联系人
List<Contact> contacts = contactDao.getAllContacts();
for (Contact contact : contacts) {