public static void main(String[] args) { conn = getConnection(); QueryRunner qr = new QueryRunner(); try { conn.setAutoCommit(false); List<Syuser> al = (List) qr.query( conn, "SELECT syuser.* FROM syuser", new BeanListHandler<Syuser>(Syuser.class)); for (Syuser u : al) { List<Syrole> rl = qr.query( conn, "SELECT syrole.* FROM syrole JOIN syuser_syrole ON syuser_syrole.SYROLE_ID = syrole.ID WHERE syuser_syrole.SYUSER_ID = ?", new BeanListHandler<Syrole>(Syrole.class), u.getId()); u.getSyroles().addAll(rl); System.out.println(u.getLoginname()); System.out.println(JSON.toJSONString(u.getSyroles())); } } catch (SQLException e) { e.printStackTrace(); try { DbUtils.rollback(conn); } catch (SQLException e1) { e1.printStackTrace(); } } finally { try { DbUtils.commitAndClose(conn); } catch (SQLException e) { e.printStackTrace(); } } }