blob: c90e791f2258a334dd2998dae05d1a22052238e9 [file] [log] [blame]
/*
* Copyright 2013 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package opennlp.modelbuilder.v2.impls;
import java.sql.*;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import opennlp.modelbuilder.v2.SentenceProvider;
/**
*
*/
public class MySQLSentenceProviderImpl implements SentenceProvider {
Set<String> sentences = new HashSet<String>();
@Override
public Set<String> getSentences() {
try {
if (sentences.isEmpty()) {
return getData();
}
} catch (Exception e) {
}
return sentences;
}
private Set<String> getData() throws Exception {
Connection con = getMySqlConnection();
if (con.isClosed()) {
con = getMySqlConnection();
}
CallableStatement cs;
cs = con.prepareCall("CALL getTrainingSentences()");
ResultSet rs;
try {
rs = cs.executeQuery();
while (rs.next()) {
sentences.add(rs.getString(1));
}
} catch (SQLException ex) {
throw ex;
} catch (Exception e) {
System.err.println(e);
} finally {
con.close();
}
return sentences;
}
private static Connection getMySqlConnection() throws Exception {
// EntityLinkerProperties property = new EntityLinkerProperties(new File("c:\\temp\\opennlpmodels\\entitylinker.properties"));
String driver = "org.gjt.mm.mysql.Driver";
String url = "jdbc:mysql://localhost:3306/db";
String username = "root";
String password = "??";
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, username, password);
return conn;
}
private Map<String, String> params = new HashMap<String,String>();
@Override
public void setParameters(Map<String, String> params) {
this.params = params;
}
}