Я пытался сделать с помощью Java Регистрация с помощью JoinRowSet, но без успеха, я получаю сообщение об ошибке:я получил ошибку при объединении данных через JoinRowSet
Exception in thread "main" java.sql.SQLException: Match Column not set for join
at com.sun.rowset.JoinRowSetImpl.addRowSet(JoinRowSetImpl.java:219)
at joinrowset.JoinRowSet.databaseCheck(JoinRowSet.java:33)
at joinrowset.JoinRowSet.main(JoinRowSet.java:49)
Что такое решение этой проблемы ? я не могу найти что-либо в Интернете, поэтому я застрял. Если у вас есть решение, было бы здорово. 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 from tblFilm");
CachedRowSet director = RowSetProvider.newFactory().createCachedRowSet();
CachedRowSet film = RowSetProvider.newFactory().createCachedRowSet();
director.populate(s.executeQuery("select DirectorName from tblDirector"));
film.populate(s.executeQuery("select FilmName from 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 ..... после того, как я сделал то, что вы сказали, нет результата в выходе :(Это код, измененный, как вы сказали Книга, из которой я привел этот пример, может быть устаревшей. Любой пример правильной итерации с помощью набора строк соединения (я предполагаю, что проблема с плохими итерациями может быть проблемой). Итерация такая же, как в моем первоначальном вопросе о этот предмет. –