@Override public List<DNS53ResourceRecord> listResourceRecords( Session sess, String zoneId, String name, String value, String type, String sid, long ttl, long weight) throws ErrorResponse { List<DNS53ResourceRecord> records = new LinkedList<DNS53ResourceRecord>(); String zoneName = getZoneName(zoneId); if (zoneName.equals("FAILED")) { throw DNS53Faults.NoSuchHostedZone(zoneId); } String query = "SELECT * FROM `msi`.`rrSet` WHERE zoneName = \'" + zoneName + "\'"; if (type != null && !type.equals("")) { type = "\'" + type + "\'"; query += " AND rdtype = " + type; } if (name != null && !name.equals("")) { String nameDot = name; if (name.charAt(name.length() - 1) != '.') { nameDot += "."; } else { name = name.substring(0, name.length() - 1); } name = "\'" + nameDot + "\'"; query += " AND name = " + name; } if (value != null && !value.equals("")) { value = "\'" + value + "\'"; query += " AND rdata = " + value; } if (sid != null && !sid.equals("")) { sid = "\'" + sid + "\'"; query += " AND sid = " + sid; } if (ttl != -1) { query += " AND ttl = " + ttl; } if (weight != -1) { query += " AND weight = " + weight; } query += ";"; // now query is created try { Statement stmt = this.sqlConnection.createStatement(); ResultSet rs = stmt.executeQuery(query); while (rs.next()) { DNS53ResourceRecord temp = new DNS53ResourceRecord(); temp.setName(rs.getString("name")); temp.setTtl(rs.getLong("ttl")); temp.setRdtype(rs.getString("rdtype")); temp.setRdata(rs.getString("rdata")); temp.setSid(rs.getString("sid")); temp.setWeight(rs.getLong("weight")); records.add(temp); } } catch (SQLException e) { e.printStackTrace(); throw DNS53Faults.InternalError(); } return records; }