Java Desktop Application에 데이터를 저장하기 위해 데이터베이스가 필요합니까?
저는 Java에서 BugTracker를 만들려고합니다.이 "가는대로 배우는"프로젝트이기 때문에 서버 질문이 있습니다. 빠른 설명 : 앱은 로그인 페이지와 텍스트 (버그 설명)를 3 가지 범주 (New, In progress, Fixed)로 분류하는 인터페이스를 갖게 될 것입니다. 제 질문은 :-내가 만든 로컬 데이터베이스가 필요합니까? "버그"를 카테고리로 저장하는 앱-다른 사용자가 다른 카테고리에서 저장하고 이동 한 다른 "버그"에 액세스 할 수 있도록 로컬 데이터베이스가 필요합니까?-로컬 데이터베이스가 필요한 경우 MySQL 및 Java를 정확히 어떻게 수행합니까? 협력? 내 프로그램은 로컬 호스트를 시작할 필요없이 버튼 클릭만으로 데이터베이스를 가져올 수 있어야합니다.
더 빨리 배우기 위해 현재 기술에 대한 큰 프로젝트를 선택하고 있다고 말할 수 있듯이이 프로젝트에 대한 다른 조언이나 알아야 할 사항이 있으면 알려주십시오.
-예, 이미 버그 추적 소프트웨어가 있다는 것을 알고 있습니다. 내 소프트웨어를 원합니다. "-
답변
데이터베이스를 사용하는 것이 절대적으로 필요한 것은 아니지만 작업이 훨씬 더 쉬워집니다.
그러나 그것은 단일 사용자 앱이고 당신의 앱만이 데이터베이스에 접근 할 수 있기 때문에 H2와 같은 임베디드 데이터베이스를 사용한다고 생각합니다. https://www.h2database.com/html/main.html갈 길입니다. 이렇게하면 데이터베이스 서버를 실행할 필요가 없습니다.
하지만 생각하지 못했던 한 가지가 있습니다. 현재 설계에서는 버그 데이터베이스가 로컬 컴퓨터에 저장되어 있으므로 해당 컴퓨터에서 실행되는 응용 프로그램에서만 액세스 할 수 있기 때문에 한 명의 사용자 만 가질 수 있습니다.
야, 버그만 잡을까 아니면 버그도 잡을까? 내 소프트웨어에서는 로그 서비스를 사용하고, Spring에서는 "Log4j2"를 사용합니다. 오류에 대한 테이블을 구현하지 않은 이유는 처리를 많이 증가시키고 데이터베이스에 불필요한 삽입의 양을 상상할 수 있기 때문입니다. 또 다른 것은 코드에서 많은 시도가있을 것입니다. 많은 kkk 오류를 처리합니다.
JDBC
질문 :
MySQL과 Java가 정확히 어떻게 함께 작동합니까?
다른 관계형 데이터베이스 ( Postgres , H2 , Microsoft SQL Server, Oracle 등) 와 마찬가지로 MySQL 은 Java 와 함께 번들로 제공되는 JDBC 프레임 워크 를 통해 Java 앱 과 통신합니다. 특정 데이터베이스에 특정한 JDBC 드라이버 를 제공해야 합니다.
Oracle에서 무료로 제공 하는 JDBC에 대한 광범위한 자습서를 참조하십시오 . Stack Overflow의 형제 사이트, 데이터베이스 관리자 Stack Exchange 도 참조하세요 .
귀하의 요구에 맞는 H2 데이터베이스 엔진을 제안 하는 다른 답변에 동의 합니다. H2 사용 방법을 보여주는 코드 로 여러 답변 을 작성했습니다 .
임베디드 모드
질문 :
내 프로그램은 로컬 호스트를 시작할 필요없이 버튼 클릭만으로 데이터베이스를 가져올 수 있어야합니다.
H2는 앱과 동일한 JVM 을 공유하여 앱의 일부로 앱에 포함되어 실행될 수 있습니다 . 또는 서버 모드에서 H2를 실행하여 네트워크 호출을 수락하도록 선택할 수 있습니다.
첫 번째 접근 방식 (내장)은 단일 사용자 로컬 앱에 대한 요구 사항에 적합합니다. 임베디드 (로컬) 데이터베이스에 연결 문서를 참조하십시오 .
팁 : 결국이 모든 것에 익숙해지면 Flyway 또는 LiquiBase 와 같은 데이터베이스 마이그레이션 도구 를 사용하여 데이터베이스 정의를 관리 하는 것이 좋습니다 .