实现用数据库存储通讯录 实现“增删改查”的功能

本文展示了如何使用SQLite数据库来创建一个简单的通讯录应用,实现了联系人的添加、删除、修改和查询功能。用户通过命令行交互,根据姓名或电话号码进行操作,程序使用C语言编写。
摘要由CSDN通过智能技术生成
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
#include <string.h>


char name[20];
int age;
char sex[20];
char phonenumber[20];


void Menu(sqlite3* db);
void insert(sqlite3* db);
void delete(sqlite3* db);
void update(sqlite3* db);
void query(sqlite3* db);
void showscreen(sqlite3* db);


int main()
{
int ret;
sqlite3 *db;
char* errmsg;
ret = sqlite3_open("cmdaddress.db", &db);
if(ret != SQLITE_OK)
    {
        perror("open");
        exit(1);
    }
char sql_create[] = "create table if not exists stu(name text, sex text, age integer, phonenumber text);";
    ret = sqlite3_exec(db, sql_create, NULL, NULL, &errmsg);
    if(ret != SQLITE_OK)
    {
        perror("create");
        exit(2);
    }
    
Menu(db);
showscreen(db);
ret = sqlite3_close(db);
if(ret != SQLITE_OK)
    {
        perror("close");
        exit(1);
    }
return 0;

}


void Menu(sqlite3* db)
{
int number;
printf("欢迎来到Coder通讯录!\n");
printf("\n");
printf("1:新增联系人\n");
printf("\n");
printf("2:删除联系人\n");
printf("\n");
printf("3:修改联系人信息\n");
printf("\n");
printf("4:查找通讯录信息\n");
printf("\n");
printf("5:弹出操作提示\n");
printf("\n");
    printf("q:退出菜单\n");
printf("\n");
printf("请输入指令\n");

while(scanf("%d", &number) == 1)
    {
   
   switch(number)
   {
   case 1:
   {
       insert(db);
       break;
   }
   case 2:
   {
   delete(db);
   break;
   }
   case 3:
   {
   update(db);
   break;
   }
   case 4:
   {
   query(db);
   break;
   }
case 5:
{
printf("1:新增联系人\n");
           printf("\n");
           printf("2:删除联系人\n");
           printf("\n");
           printf("3:修改联系人信息\n");
           printf("\n");
           printf("4:查找通讯录信息\n");
           printf("\n");
                printf("q:退出菜单\n");
           printf("\n");
           printf("请输入数字\n");
break;
}
default: printf("请重新输入正确的操作指令\n");
   }
   
    }
    
}


void insert(sqlite3* db)
{
int ret;
char *errmsg;
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你提供一个基本的Java代码示例,用于实现通讯录增删改查功能。假设我们需要存储通讯录中每个联系人的姓名、电话和地址信息,我们可以使用MySQL数据库存储这些数据。以下是示例代码: 首先,我们需要创建一个Contact类来表示每个联系人的信息: ```java public class Contact { private int id; private String name; private String phone; private String address; public Contact(int id, String name, String phone, String address) { this.id = id; this.name = name; this.phone = phone; this.address = address; } // getter and setter methods } ``` 接下来,我们需要创建一个ContactDao类来处理通讯录数据增删改查操作: ```java import java.sql.*; public class ContactDao { private Connection conn; public ContactDao() { // establish database connection String url = "jdbc:mysql://localhost:3306/contacts"; String username = "root"; String password = "password"; try { conn = DriverManager.getConnection(url, username, password); } catch (SQLException e) { e.printStackTrace(); } } public void addContact(Contact contact) { String sql = "INSERT INTO contacts (name, phone, address) VALUES (?, ?, ?)"; try { PreparedStatement statement = conn.prepareStatement(sql); statement.setString(1, contact.getName()); statement.setString(2, contact.getPhone()); statement.setString(3, contact.getAddress()); statement.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } public void updateContact(Contact contact) { String sql = "UPDATE contacts SET name = ?, phone = ?, address = ? WHERE id = ?"; try { PreparedStatement statement = conn.prepareStatement(sql); statement.setString(1, contact.getName()); statement.setString(2, contact.getPhone()); statement.setString(3, contact.getAddress()); statement.setInt(4, contact.getId()); statement.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } public void deleteContact(int id) { String sql = "DELETE FROM contacts WHERE id = ?"; try { PreparedStatement statement = conn.prepareStatement(sql); statement.setInt(1, id); statement.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } public Contact getContact(int id) { String sql = "SELECT * FROM contacts WHERE id = ?"; try { PreparedStatement statement = conn.prepareStatement(sql); statement.setInt(1, id); ResultSet rs = statement.executeQuery(); if (rs.next()) { String name = rs.getString("name"); String phone = rs.getString("phone"); String address = rs.getString("address"); return new Contact(id, name, phone, address); } } catch (SQLException e) { e.printStackTrace(); } return null; } } ``` 最后,我们可以在主函数中使用ContactDao类来完成通讯录增删改查操作: ```java public class Main { public static void main(String[] args) { ContactDao dao = new ContactDao(); // add a new contact Contact contact1 = new Contact(1, "John Smith", "1234567890", "123 Main St"); dao.addContact(contact1); // update an existing contact Contact contact2 = dao.getContact(1); contact2.setName("Jane Smith"); dao.updateContact(contact2); // delete a contact dao.deleteContact(1); // get a contact by id Contact contact3 = dao.getContact(2); System.out.println(contact3.getName() + " " + contact3.getPhone() + " " + contact3.getAddress()); } } ``` 以上就是一个基于Java和MySQL数据库通讯录增删改查功能的示例代码。需要注意的是,这只是一个简单的示例,实际情况中可能需要更复杂的操作和更完善的异常处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值