You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@mahout.apache.org by Sam Yang <ya...@gmail.com> on 2010/09/24 17:49:58 UTC

PlusAnonymousUserDataModel java.sql.SQLException: No database selected

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.

Re: PlusAnonymousUserDataModel java.sql.SQLException: No database selected

Posted by Sam Yang <ya...@gmail.com>.
I think it's not about PlusAnonymousUserDataModel,when I run it as
application,works well,when run the servlet on tomcat,the error happens.


On Fri, Sep 24, 2010 at 11:49 PM, Sam Yang <ya...@gmail.com> wrote:

> 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)
> throws TasteException {
>
>  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.
>



-- 
I'm samsam.

Re: PlusAnonymousUserDataModel java.sql.SQLException: No database selected

Posted by Sean Owen <sr...@gmail.com>.
The issue isn't with any of this code.

It's in how you are configuring the DataSource in your container.
Sounds like you are specifying host and port, but, you typically must
also specify a database or schema within that server. That should be
the one containing your data table.

On Fri, Sep 24, 2010 at 4:49 PM, Sam Yang <ya...@gmail.com> wrote:
> I got  "java.sql.SQLException: No database selected", but my database config
> is right,who know what's wrong?
>