Ich versuche, generische DAO in Java zu entwickeln. Ich habe folgendes versucht. Ist das eine gute Möglichkeit, generisches DAO zu implementieren? Ich möchte den Ruhezustand nicht verwenden. Ich versuche es so allgemein wie möglich zu machen, damit ich nicht immer wieder den gleichen Code wiederholen muss.generische DAO in Java
public abstract class AbstractDAO<T> {
protected ResultSet findbyId(String tablename, Integer id){
ResultSet rs= null;
try {
// the following lines are not working
pStmt = cn.prepareStatement("SELECT * FROM "+ tablename+ "WHERE id = ?");
pStmt.setInt(1, id);
rs = pStmt.executeQuery();
} catch (SQLException ex) {
System.out.println("ERROR in findbyid " +ex.getMessage() +ex.getCause());
ex.printStackTrace();
}finally{
return rs;
}
}
}
Jetzt habe ich:
public class UserDAO extends AbstractDAO<User>{
public List<User> findbyid(int id){
Resultset rs =findbyid("USERS",id) // "USERS" is table name in DB
List<Users> users = convertToList(rs);
return users;
}
private List<User> convertToList(ResultSet rs) {
List<User> userList= new ArrayList();
User user= new User();;
try {
while (rs.next()) {
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("username"));
user.setFname(rs.getString("fname"));
user.setLname(rs.getString("lname"));
user.setUsertype(rs.getInt("usertype"));
user.setPasswd(rs.getString("passwd"));
userList.add(user);
}
} catch (SQLException ex) {
Logger.getLogger(UserDAO.class.getName()).log(Level.SEVERE, null, ex);
}
return userList;
}
}
Was ist das Problem? – Bozho
PLZ sehe die Zeile sagen // die folgenden Lins in nicht funktioniert; – akshay
Warum möchten Sie nicht Hibernate (oder anderes ORM) verwenden? –