2014-07-15 4 views
2

Java 및 MySQL에 문제가 있습니다. 내 코드 : 나는이 프로그램을 실행하면Java 및 MySQL 쿼리

Connection connection; 
// ... 
for (String query : updateAndInsertQuery) { 
    Statement stm = connection.createStatement(); 
    stm.execute(query); 
    stm.close(); 
} 


Statement stm2 = connection.createStatement(); 
System.out.println("Before query"); 
System.out.flush(); 
ResultSet Result = stm2.executeQuery(selectQuery); 
System.out.println("After query"); 
System.out.flush(); 
int vfrom, vto; 
while (Result.next()) { 
    // ... 
} 

내가 MySQL의 쿼리에서 볼

show processlist; 

selectQuery 실행 상태 데이터를 보내거나 인터넷에 쓰기 WTH 목록에서 볼 수 있습니다. 콘솔 인쇄시 : Before query. 다음

빈 목록을 반환하지만 응용 프로그램은 After query을 인쇄하지 않습니다. 비슷한 문제가 있습니까?

- 편집

나는이 문제를 해결합니다.

나는 생각한다 원자바오 MySQL은 데이터를 반환하고 쿼리 내가 바로 콘솔 메시지에 가야 MySQL을 에 PROCESSLIST에 표시되지 : 쿼리 후

하지만, 콘솔, 자바 프로세스 (CPU 사용량이 90이었다 빈 작동했다 -100 %) 그래서 내 실수 였다고 생각하지만 1 시간 후에 예외가 throw됩니다.

내 문제가 해결되었습니다.

그럼 왜 응용 프로그램이 시간 이후에 예외를 throw하는지 다음 질문이 있습니까? 가비지 수집 unified 개체를 시도하십시오?

+0

을 먹으 렴을? 귀하의 단계를보다 자세히 설명해 주시겠습니까? –

+0

아마 예외가 있습니다. 쿼리 란 무엇입니까? –

+0

'selectQuery'의 값은 무엇인지 알 수 있습니까? – pms

답변

-5

일반적으로 쿼리를 수동으로 실행하면 플랫폼 별 및 DB 별 문제가 많습니다. 당신의 최선의 대답은 "ORM으로 전환"이라고 생각합니다.

이 프레임 워크는 모든 SQL 데이터를 엔티티 및 트랜잭션 (필요한 경우)과 동시에 대부분의 문제점을 해결하므로 매우 효과적임이 입증되었습니다. 엔티티와 관계에 올바르게 주석을 달면됩니다. 데이터베이스 쿼리는 플랫폼 독립적 인 JPA- "criteria"를 통해 실행될 수 있으며 많은 문제를 피하고 코드를 READABLE로 만들 수 있습니다.
자습서 : http://www.vogella.com/tutorials/JavaPersistenceAPI/article.html
SO-질문 : https://stackoverflow.com/questions/743065/what-is-the-fastest-way-to-learn-jpa JPA와

, 당신은 늘 더 이상 설명이나 질의에 대해 신경 쓸 필요가 (물론, 적어도 대부분의 시간)과 같은 문제점이 사라집니다 - PLUS : 그것을 구현하는데 30-60 분 밖에 걸리지 않습니다.

추가 팁 : 메이븐 &는 EclipseLink (JPA2 구현)를 사용 - 그것이 충돌하거나 동결 않는 매우 강력한 휴대용 조합 응용 프로그램에 어떻게됩니까

+1

감사합니다.하지만이 경우에는 ORM이 필요하지 않다고 생각합니다. – krynio

+0

모두가 필요합니다. 대부분의 사람들은 비록 그들이 필요로하는 것을 알지는 못합니다 ... – specializt

+0

이 특별한 경우에는 아마 orm이 필요 없습니다. 나는 메모리에 큰 그래프를 만들고 데이터베이스에 임시 테이블을 생성하므로이 경우에는 orm이 필요하지 않습니다. – krynio