gpt4 book ai didi

java - 为现有 CSV 文件创建 DAO

转载 作者:行者123 更新时间:2023-12-01 14:37:35 24 4
gpt4 key购买 nike

给定的是一个现有的 CSV 文件,具有以下示例结构/内容:

id,password,role
user1,1234,student
user2,1234,professor

我想在 Java 中创建一个具有简单 CRUD 操作的基本 DAO 来访问和修改该数据。是否可以更新/编辑单个记录/行?或者我必须完全解析并重写该文件吗?

当前实现:

package com.testproject.persistence;

import java.io.FileWriter;
import java.io.IOException;
import java.util.List;

import com.testproject.model.User;

public class UserDAO {
private final static String CSV_FILE = "/Users/someuser/Desktop/test.csv";

/**
*
* @param user
*/
public void add(User user) {
try {
FileWriter writer = new FileWriter(CSV_FILE, true);

writer.append(user.getId());
writer.append(';');
writer.append(user.getPassword());
writer.append('\n');

writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}

/**
*
* @param user
*/
public void update(User user) {
//
}

/**
*
* @param userId
*/
public void delete(String userId) {
//
}

/**
*
* @return
*/
public List<User> findAll() {
return null;
}

/**
*
* @param userId
* @return
*/
public User findByPrimaryKey(String userId) {
return null;
}
}

感谢和亲切的问候

菲利普

最佳答案

做法:读取原始csv -> 更改内存中的内容并写入新文件 -> 删除旧文件 -> 重命名新文件)

实现这一目标的两种方法:

第一:如果您的 csv 不太大1.创建一个代表csv每一行的对象2.读取csv后将csv表示为对象集合

创建:在集合中添加对象并重写文件

READ:从集合中简单读取,因为您的集合是 csv 的副本

更新:更新集合中的对象并重写 csv

DELETE:从集合中删除对象并重新写入csv

**这种方法的好处是 READS 不受文件读取的影响。

第二:如果您的 csv 太大并且内存有限,则可以避免创建集合,但在对其进行任何更新时仍然必须重新写入文件。

** 这种方法的好处是可以节省内存,但读取速度也很慢

关于java - 为现有 CSV 文件创建 DAO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16336519/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com