-1
我想从一个ngrams(HashMap)中提取数据库中的所有值。我的问题是如何更好地实现提取功能。这段代码的执行速度很慢,因为如果表中存在HashMap,那么java程序必须检查每次。如果存在,则必须从表格中选择前一个频率,并将其添加到新的频率中。在单个查询中插入,选择和更新 - SQL
为了使这个过程更好,我可以更改三个函数(更新,插入,检查)吗?
这里是与数据库
public boolean insert(String w1, String w2, String w3, String w4, Integer f, float rf) throws SQLException{
...
String sql = "INSERT INTO fourgrams " +
"VALUES("+w1 + "," + w2 + "," + w3 + "," + w4 + "," + f + ',' + rf + ")"
...
}
public boolean update(String w1, String w2, String w3, String w4, Integer f) throws SQLException{
...
String sql = "UPDATE fourgrams " +
"SET frequency =" + f + " WHERE gram1=" + w1 +
" AND gram2=" + w2 + " AND gram3=" + w3 +
" AND gram3=" + w3;
...
}
public int check(String w1, String w2, String w3, String w4) throws SQLException{
...
String sql = "SELECT frequency FROM fourgrams " +
"WHERE gram1=" + w1 +
" AND gram2=" + w2 + " AND gram3=" + w3 +
" AND gram3=" + w3;
...
}
连接的代码,这里是代码,我有问题
public void extract(Database myDB) throws SQLException{
Iterator it = ngrams.entrySet().iterator();
while(it.hasNext()){
...
int fr=myDB.check(...);
if (fr == -1)
{
myDB.insert(...);
}else{
myDB.update(...);
}
}
...
}
谢谢您的回答。我想LOAD INFILE就是我需要的。 –