【发布时间】:2014-05-08 03:52:13
【问题描述】:
请记住,这是一个相当新手的问题,所以请耐心等待我。
因此,作为一个对数据库知之甚少甚至一无所知的人,不良条件使我陷入了一种我不知道该怎么做的任务的境地。
在我需要的时候,我来找你们。
首先,我的任务要求我使用 Apache Derby 与 Eclipse 一起实现预期目标。
我得到了一个位于 res/myCSVFile.csv 的数据库。
带有CSV 扩展名的文本文件如下所示:
letter,name
A,alpha-static
B,beta-static
C,charlie-static
看起来不会太吓人吧?
我知道我可以像这样从我的 CSV 文件中构建一个不错的 HashMap:
Map<String, myFileType> myHashMap = new HashMap<>();
try(CSVReader rdr = new CSVReader(new FileReader("res/myCSVFile.csv"), ',','"',1)){
for(String[] row : rdr.readAll()){
File imagefile = new File(row[1]);
myHashMap.put(row[0], new myFileType(imagefile, Integer.parseInt(row[2])));
}
}
我知道CSV 用逗号分隔列,所以我假设我在这个文件中看到的是两列,一列标有“字母”,下面有值“A”、“B”和“C”,另一列用“alpha-static”、“beta-static”和“charlie-static”标记“name”。
我的情况要求我使用 Derby 将上述数据作为SQL 数据库进行操作。完全清楚 CSV 文件看起来不像 SQL 文件,我知道其中涉及一些转换。
我不知道 Java 是否可以(或应该)以某种方式为我做到这一点,但我认为不会。
现在,我假设我的 CSV 文件的 SQL 变体看起来像:
DROP TABLE possibleSqlTable;
CREATE TABLE possibleSqlTable(
letter VARCHAR(1) NOT NULL PRIMARY KEY
, name VARCHAR(14)
);
INSERT INTO possibleSqlTable(letter,name) VALUES ('A','alpha-static');
INSERT INTO possibleSqlTable(letter,name) VALUES ('B','beta-static');
INSERT INTO possibleSqlTable(letter,name) VALUES ('C','charlie-static');
这只是我在黑暗中猜测SQL 数据库的外观(如果我错了,请纠正我)。假设保存为res/possibleSqlDatabase.sql。
现在,我如何让 Derby 参与进来?
假设我的SQL 数据库是正确的,正如我在上面猜到的,我该如何查询语句?
例如,我将如何将“A”映射到“alpha-static”?我可以用一个简单的HashMap 做到这一点吗?如果可能的话,我很想看看怎么做。
我确实对SQL-commands 的工作原理有一个基本的、非常基本的了解,但我希望有一些使用我的数据库的示例。
回答时,请把我当成学龄前儿童来学习这些东西。我真的是新人。
【问题讨论】:
-
与问题无关,您没有将这些
EDITs 放在问题正文中 - 有一个名为“编辑摘要”的位置。 -
哦。一定是忽略了这一点。请原谅。