2011-08-19 4 views
-2

동적 POJO 생성에 관한이 웹 사이트의 게시물을 보았습니다. 나는 지금 비슷한 요구 사항을 가지고있다.Java POJO 클래스를 동적으로 생성하는 방법은 무엇입니까?

데이터베이스에 테이블이 있습니다. 필드와 해당 getter 및 setter가있는 각 테이블에 대해 POJO 클래스를 갖고 싶습니다. 이 클래스들은 동적으로 생성됩니다. 일단 이러한 클래스가 만들어지면 다른 클래스의 setter 및 getter를 사용하여 데이터를 가져오고 설정하고 Java 객체를 반환해야합니다.

내가 BCEL, CGLIB이에 대한 몇 가지 다른 오픈 소스 도구를 볼 수 있지만, 적절한 예를 찾을 수 couldnt는있다. 너 나 좀 도와 줄 수있어?

+4

StackOverflow는 사이트에서 질의 응답을 유지함으로써 모든 사람을 돕는 커뮤니티로 작동하므로 다른 사람들이 혜택을 볼 수 있습니다. 제발 이메일을 요구하지 마십시오. –

+0

전체 개념이 그 밖의 다른 것을 생각할 수없는 나쁜 생각이기 때문에 나는 downvote를 추가했습니다. 코드 건, 빈즈 사용 안 함, setter 및 getter 사용 안 함 (Btw, setters 및 getters가있는 비즈니스 논리가없는 POJO는 빈 패턴이라고하며 pojo라는 단어는 콩을 구분하는 데 정말로 필요합니다. 어떤 오래된 자바 객체에서 setter와 getter가 필요한지) 요구 사항이 전혀없는 Plain Old Java Object에서 사용해야합니다. 코드 완성 후 bean이 생성되기 때문에 특정 케이스에 대한 해시 맵을 사용해야합니다 (사용자 입력에 따르면) 구조. –

답변

1

이 목적으로 만들어진 ORM (Object Relational Mapping) 프레임 워크를 살펴 보셨습니까? Hibernate 또는 Java EE 6 표준 JPA 등이 있습니다. 그것은 당신이 꽤 복잡하고 시간이 많이 걸리는 뭔가를 다시 발명하는 길에서 시작하는 것처럼 들리지만 결코 좋은 아이디어는 아닙니다.

UPDATE : 응답

음을 언급, 난 단지 너희들이 상처의 세계로 자신을 구축하는 것을 말할 수있다. 고려 :

  1. 완전히 동적 인 클래스를 사용하는 경우 다른 클래스의 클래스 및 객체를 참조 할 예정입니까? 반사를 통해? 그리고 생성 된 모든 클래스, 이름, setter 및 getter의 이름을 어떻게 추적 할 것입니까?
  2. 시스템을 다시 시작해야 할 때 어떻게됩니까? 어떻게 모든 동적 클래스를 다시 만들려고합니까?
  3. 완전히 동적 인 데이터베이스를 사용하여 어떻게 성능 최적화를 수행 할 수 있습니까? 예를 들어 인덱싱과 같습니다.

난 단지 강하게 당신이 당신의 구조를 다시 생각을 조언 해 줄 수 있습니다. 동적 데이터 모델은 처음부터 엉망이며, 유지 보수, 최적화 및 디버그가 불가능합니다. 나는 그것을 기반으로하는 시스템을 보았고 꽤되지 않았습니다. IBM Lotus WCM은 데이터 모델 공포의 대표적인 예입니다. 제대로 설계되고 정규화 된 관계형 모델은 99,99999999 %의 경우에서 더 나을 것입니다. 동적 실행 시간 ORM 클래스의 하네스이 결합

유지하는 것이 완전히 불가능 (이해) 할 것이다.

+0

Yaa하지만 최대 절전 모드 및 다른 ORM 도구를 사용하려면 이전에 테이블을 정의해야하지만 제 경우 테이블은 사용자 작업에서 동적으로 생성되므로 해당 클래스도 동적으로 생성되어야합니다. – Srikanth

+0

답변을 업데이트로보기 – pap

+1

@Pap은 절대적으로 맞습니다. 답이 아니기 때문에 보내지 않을 거대한 대답이 있었지만 기본적으로 사용하려는 것은 해시 맵입니다. 사용자로부터 개체를 만드는 경우 어쨌든 필드에 반사적으로 액세스해야하기 때문에 해시 (유형 안전성) 대신 클래스를 생성하는 유일한 이점이 무효화됩니다. –

관련 문제