I got "java.sql.SQLException: No database selected", but my database config
is right,who know what's wrong?
This is part of my source code:
=====
public class AnonymousRecommender implements Recommender{
private final Recommender recommender;
private final PlusAnonymousUserDataModel plusAnonymousModel;
public AnonymousRecommender() throws TasteException, IOException {
this(new PreferenceDataModel());
}
public AnonymousRecommender(PreferenceDataModel dataModel)
throws TasteException {
ItemSimilarity itemSimilarity = new ItemSimilarityImpl();
recommender = new
GenericItemBasedRecommender(newPlusAnonymousUserDataModel(dataModel),
itemSimilarity);
plusAnonymousModel = (PlusAnonymousUserDataModel)recommender
.getDataModel();
}
public synchronized List<RecommendedItem> recommend(PreferenceArray
anonymousUserPrefs, int howMany) throws TasteException {
plusAnonymousModel.setTempPrefs(anonymousUserPrefs);
List<RecommendedItem> recommendations =
recommend(PlusAnonymousUserDataModel.TEMP_USER_ID, howMany, null);
return recommendations;
}
public List<RecommendedItem> recommend(String viewIDs, int howMany)
throwsTasteException {
viewIDs = viewIDs.replace("[", "").replace("]", "");
String[] viewIDsArray = viewIDs.split(",");
System.out.println(viewIDsArray.getClass());
PreferenceArray anonymousPrefs = newGenericUserPreferenceArray(viewIDsArray.
length);
for (int i=0;i<viewIDsArray.length;i++){
anonymousPrefs.setUserID(i,PlusAnonymousUserDataModel.TEMP_USER_ID);
anonymousPrefs.setItemID(i, Integer.parseInt(viewIDsArray[i]));
anonymousPrefs.setValue(i, 3.0f);
}
return recommend(anonymousPrefs, howMany);
}
=====
I got this exception:
=====
javax.servlet.ServletException:
org.apache.mahout.cf.taste.common.TasteException:
java.sql.SQLException: No database selected
net.gamestreamer.recommendation.servlet.AnonymousRecommenderServlet.doGet(AnonymousRecommenderServlet.java:108)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
*root cause*
org.apache.mahout.cf.taste.common.TasteException:
java.sql.SQLException: No database selected
org.apache.mahout.cf.taste.impl.model.jdbc.AbstractJDBCDataModel.doGetPreferencesForItem(AbstractJDBCDataModel.java:466)
org.apache.mahout.cf.taste.impl.model.jdbc.AbstractJDBCDataModel.getPreferencesForItem(AbstractJDBCDataModel.java:440)
org.apache.mahout.cf.taste.impl.model.PlusAnonymousUserDataModel.getPreferencesForItem(PlusAnonymousUserDataModel.java:124)
org.apache.mahout.cf.taste.impl.recommender.AbstractRecommender.getAllOtherItems(AbstractRecommender.java:107)
org.apache.mahout.cf.taste.impl.recommender.GenericItemBasedRecommender.recommend(GenericItemBasedRecommender.java:98)
net.gamestreamer.recommendation.AnonymousRecommender.recommend(AnonymousRecommender.java:67)
net.gamestreamer.recommendation.AnonymousRecommender.recommend(AnonymousRecommender.java:39)
net.gamestreamer.recommendation.AnonymousRecommender.recommend(AnonymousRecommender.java:53)
net.gamestreamer.recommendation.servlet.AnonymousRecommenderServlet.doGet(AnonymousRecommenderServlet.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
*root cause*
java.sql.SQLException: No database selected
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1075)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3562)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3494)
com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1960)
com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2114)
com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2696)
com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2105)
com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2264)
org.apache.mahout.cf.taste.impl.model.jdbc.AbstractJDBCDataModel.doGetPreferencesForItem(AbstractJDBCDataModel.java:458)
org.apache.mahout.cf.taste.impl.model.jdbc.AbstractJDBCDataModel.getPreferencesForItem(AbstractJDBCDataModel.java:440)
org.apache.mahout.cf.taste.impl.model.PlusAnonymousUserDataModel.getPreferencesForItem(PlusAnonymousUserDataModel.java:124)
org.apache.mahout.cf.taste.impl.recommender.AbstractRecommender.getAllOtherItems(AbstractRecommender.java:107)
org.apache.mahout.cf.taste.impl.recommender.GenericItemBasedRecommender.recommend(GenericItemBasedRecommender.java:98)
net.gamestreamer.recommendation.AnonymousRecommender.recommend(AnonymousRecommender.java:67)
net.gamestreamer.recommendation.AnonymousRecommender.recommend(AnonymousRecommender.java:39)
net.gamestreamer.recommendation.AnonymousRecommender.recommend(AnonymousRecommender.java:53)
net.gamestreamer.recommendation.servlet.AnonymousRecommenderServlet.doGet(AnonymousRecommenderServlet.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
=====
--
I'm samsam.