我有一个数据库,其中有 3 列(id、name、info_link)。
我将id和名称存储在数据库中。
我有一个文本文件,其中所有信息链接都被刮掉了。
信息链接的形式为:http://someURL/**Name**.htm
现在我要做的是从数据库中取一个名称,从链接的文本文件中读取一行,查找链接(行)是否包含该药物名称,将该链接放在记录的 info_link 列中。
这就是我的代码
BufferedReader reader = new BufferedReader(new FileReader("./Links.txt"));
BufferedWriter writer = new BufferedWriter(new FileWriter("./AddedLinks.txt"));
int id = 1;
//Creates a connection to the Database
connection = DriverManager.getConnection(DB_URL,DB_USER,DB_PASS);
statement = connection.createStatement();
for(id=1;id<=1153;)
{
query = statement.executeQuery("SELECT name FROM drug_list WHERE id = '"+id+"';");
query.next();
String name = query.getString(1);
String words[] = name.split(" ");
String Myvalue = reader.readLine();
boolean Found = false;
while(!Found)
if(Myvalue.toLowerCase().contains(words[0].toLowerCase()))
{
Boolean f = false;
System.out.println("Found"+name);
update = connection.prepareStatement("UPDATE drug_list SET info_link = ? WHERE id = ?;");
update.setString(1, Myvalue);
update.setInt(2, id);
f = update.execute();
if(!f)
{
System.out.println("QSE");
id++;
writer.write(Myvalue);
Found = true;
}
}
else
{
System.out.println("Could Not Find"+name+"\n");
id++;
Found = false;
}
}
我能够匹配必须在单字上处理的容器链接。但问题是
我有一个像这样的药物名称
- 沙丁胺醇(沙丁胺醇)
- 多佐胺/噻吗洛尔
ETC..
以及他们的相应链接,例如:
- http://Somelink/**albuterol_salbutamol**.htm
- http://Somelink/**dorzolamide_timolol**.htm
数据库中还有一些名称在文本文件中没有相应的链接,我也想跳过这些。我的数据库中总共有 1153 个值。
我也有一些药物名称,例如
- 钙的东西
- 钙 东西 东西
- 钙不是什么
因此,如果我仅匹配我拆分的单词 [0],则会产生问题。因为它只会更新 Calcium Something Field 的所有值。