java - I received an error when joining data through JoinRowSet -
i've tried join via java using joinrowset no success, i'm receiving error :
exception in thread "main" java.sql.sqlexception: match column not set join @ com.sun.rowset.joinrowsetimpl.addrowset(joinrowsetimpl.java:219) @ joinrowset.joinrowset.databasecheck(joinrowset.java:33) @ joinrowset.joinrowset.main(joinrowset.java:49) what solution problem ? can't find on internet i'm stuck. if have solution great. thanks
package joinrowset; import java.sql.connection; import java.sql.drivermanager; import java.sql.resultset; import java.sql.sqlexception; import java.sql.statement; import javax.sql.rowset.cachedrowset; import javax.sql.rowset.rowsetprovider; public class joinrowset { void databasecheck() throws sqlexception, classnotfoundexception { class.forname("com.microsoft.sqlserver.jdbc.sqlserverdriver"); string url="jdbc:sqlserver://localhost:1433;databasename=movies;integratedsecurity=true"; connection c = drivermanager.getconnection(url); statement s = c.createstatement(); resultset rs = s.executequery("select filmname tblfilm"); cachedrowset director = rowsetprovider.newfactory().createcachedrowset(); cachedrowset film = rowsetprovider.newfactory().createcachedrowset(); director.populate(s.executequery("select directorname tbldirector")); film.populate(s.executequery("select filmname tblfilm")); javax.sql.rowset.joinrowset jrs = rowsetprovider.newfactory().createjoinrowset(); jrs.addrowset(director); jrs.addrowset(film); while(jrs.next()) { for(int i=1; i<=jrs.getmetadata().getcolumncount(); i++) { system.out.println(jrs.getstring(i) + "\t"); } } } public static void main(string[] args) throws sqlexception, classnotfoundexception { joinrowset instantiate = new joinrowset(); instantiate.databasecheck(); } }
joinrowset wants know, how join data. need set match column. in queries select directorname tbldirector , select filmname tblfilm there isn't column used match column. guess every film has have director and, probably, in table tbldirector may find references directors. in case rewrite code as
director.populate(s.executequery("select directorname tbldirector")); film.populate(s.executequery("select filmname, directorname tblfilm")); javax.sql.rowset.joinrowset jrs = rowsetprovider.newfactory().createjoinrowset(); director.setmatchcolumn(1); //position of column "directorname" film.setmatchcolumn(2); //position of column "directorname" jrs.addrowset(director); jrs.addrowset(film); do not forget, it's example based on assumption data structure.
Comments
Post a Comment