소개
이 문서에서는 봄 프로젝트, MySQL 데이터베이스에 연결하는 방법에 대해 설명합니다.
이 프로젝트는, 이것은 당신이 봄 JDBC 나 MyBatis로 사용할 수 있습니다 하나의 방법입니다 물론 연결된 JPA와 최대 절전 모드 봄 데이터, MySQL 데이터베이스를 사용합니다.
봄의 데이터는 JPA 스프링 데이터는 주로 데이터를 단순화하는 데 사용되는 하위 프로젝트 액세스 스프링 데이터 JPA 쉽게 CRUD를 구현할 수 있습니다 사용하여 층, 페이징, 위해 등, 정렬. 봄 데이터는 많은 하위 프로젝트를 가지고 스프링 데이터 JPA에 추가하여, 다음과 같은 하위 프로젝트가있다.
- 봄 데이터 풍경
- 봄 데이터 MongoDB를
- 봄 데이터 레디 스
- 봄 데이터 SOLR
- 봄 데이터 Gemfire
- 봄 데이터 REST
- 봄 데이터 Neo4j
완전 자동화 된 ORM 프레임 워크입니다, SQL 문을 자동으로 생성 최대 절전 모드, 그것은 데이터베이스 테이블과 매핑 관계를 POJO 것, 그것은 아주 가벼운 JDBC 객체 패키지를했다, 객체 - 관계형 매핑 프레임 워크는 오픈 소스 인 최대 절전 모드, 자동으로 자바 프로그래머는 임의의 객체 프로그래밍 사고를 사용할 수 있도록 데이터베이스를 조작합니다. JDBC를 사용하여 어떤 경우에 사용할 수있는 최대 절전 모드, 자바 서블릿 / JSP 웹 응용 프로그램에서 사용할 수 있습니다 모두 클라이언트 프로그램에서 사용할 수있는 가장 혁명적이며, Hibernate는 J2EE 아키텍처의 응용 프로그램에서 EJB CMP를 대체 할 수 데이터 지속성의 작업을 완료합니다.
이 글은 스프링 데이터 JPA를 사용하고, MySQL 데이터베이스를 연결하는 최대 절전 모드하는 방법에 대해 설명합니다.
준비된
우선 우리는 MySQL의 과정에 대한 몇 가지 준비를해야합니다. 우리는 MySQL의 db_example에서 데이터베이스를 생성하고 모든 운영 권한 db_example 데이터베이스와 springuser 사용자를 생성 할 것입니다. 열기 MySQL은, 다음 명령을 입력 :
MySQL의 > 만들기 데이터베이스 db_example는, - db_example 새 데이터베이스 작성 MySQL의 > 만들기 사용자 ' springuser ' @ ' localhost를 ' IDENTIFIED 에 의해 ' pwd123을 ' , - , 비밀번호를 새 사용자 springuser 만들기 pwd123 MySQL의 > 그랜트 모든 ON . db_example * 에 ' springuser ' @하는 ' 로컬 호스트 ' ; - 데이터베이스 db_example을 운영하는 모든 springuser 사용자의 권한을 부여
봄 부팅 프로그램
. 1 단계 프로젝트 spring_mysql뿐만 아니라 프로젝트의 레이아웃을 만들 :
MKDIR spring_mysql CD. / spring_mysql build.gradle 접촉 에서 mkdir -p SRC / 메인 / 자바 에서 mkdir -p SRC / 메인 / 자원 에서 mkdir -p SRC / 테스트 / 자바 에서 mkdir -p SRC / 시험 / 자료
2 단계 쓰기 build.gradle
다음과 같이 build.gradle 코드는 다음과 같습니다
buildscript 저장소 { mavenCentral () } 종속 { 클래스 경로 ( "org.springframework.boot : 봄 - 부팅 Gradle을-플러그인 : 2.0.0.RELEASE은" ) } } : 플러그인 적용 '자바'를 플러그인을 적용 '일식' 플러그인을 적용 '생각' : 플러그인 적용 'org.springframework.boot'를 적용 플러그인 : 'io.spring.dependency 관리' bootJar { baseName의 =의 '의 GS-액세스하는 데이터-mysql을' 버전 = '0.1.0' } 저장소 { mavenCentral () } sourceCompatibility= 1.8 targetCompatibility = 1.8 의존성이 { 컴파일 ( "org.springframework.boot : 봄 - 부팅 스타터 웹" ) // JPA 데이터 (우리는 등 저장소, 엔티티, 최대 절전 모드를 사용하려고 ...) '조직을 컴파일합니다. springframework.boot은 : 봄 - 부팅 - 스타터 - 데이터 JPA ' // 를 사용하여 MySQL의 커넥터-J는 MySQL의 컴파일': MySQL의 커넥터 - 자바 ' testCompile ( 'org.springframework.boot : 봄 - 부팅 선발 테스트 ' ) }
봄 부트 프로젝트에서 주로 봄 - 부팅 스타터 웹, 스프링 부팅 스타터 데이터 JPA와 MySQL을 사용 : MySQL의 커넥터 - 자바 웹 MySQL의에서 작업을 종료합니다.
3 단계 구성 등록 정보 파일
다음과 같이 새로운 SRC / 메인 / 자원 / 파일, 구성 관련 속성을있는 application.properties :
spring.jpa.hibernate.ddl 오토 = 만들 spring.datasource.url = JDBC를 : mysql을 : // localhost를 : 3306 / db_example spring.datasource.username = springuser spring.datasource.password = pwd123
해당 데이터베이스 테이블에 구현 된 위의 코드에서, 새 데이터베이스 (만들기)의 주요 작업은 존재하지 않습니다. 로컬 호스트 3306 포트 db_example MySQL 데이터베이스 서버를 사용하고, 사용자 이름과 암호를 설정합니다.
4 단계는 자바 파일로 작성
새 폴더에 SRC / 메인 / 자바 / 안녕하세요 폴더 (패키지), User.java 만들기 엔티티 클래스는 자동으로 데이터베이스의 테이블로 변환됩니다 최대 절전 모드. 다음과 같이 User.java 전체 코드는 다음과 같습니다
패키지 , 안녕하세요 수입 javax.persistence.Entity; 수입 javax.persistence.GeneratedValue; 수입 javax.persistence.GenerationType; 수입 javax.persistence.Id; @Entity // 이이 클래스에서 테이블을 만들기 위해 Hibernate에게 알려준다 공용 클래스 사용자 { @Id @GeneratedValue (전략 = GenerationType.AUTO) 개인 정수 ID; 개인 문자열 이름; 개인 문자열 이메일; 공공 정수 getId () { 반환 아이디; } 공공 무효setId (정수 ID) { 이 .ID = ID; } 공공 문자열 getName () { 반환 이름; } 공공 무효 에서는 setName (문자열 이름) { 이 .name을 = 이름; } 공공 문자열 가령 getMail () { 반환 이메일; } 공공 무효 setEmail (문자열 이메일) { 이 .email = 이메일; } }
다음과 같이 UserRepository.java 새 폴더에있는 코드입니다 :
패키지 , 안녕하세요 수입 org.springframework.data.repository.CrudRepository; 수입 hello.User; // 이 AUTO는 콩으로 스프링에 의해 구현 될 것이다 userRepository라는 // CRUD 읽기, 업데이트, 삭제, 생성 의미 공중 인터페이스 UserRepository이 확장 CrudRepository <사용자, 롱> { }
이것은 자동으로 스프링 빈에있을 것입니다 저장소 인터페이스입니다.
MainController.java 위의 새 폴더, 다음과 같이 :
패키지 , 안녕하세요 수입 org.springframework.beans.factory.annotation.Autowired; 수입 org.springframework.stereotype.Controller; 수입 org.springframework.web.bind.annotation.RequestMapping; 수입 org.springframework.web.bind.annotation.GetMapping; 수입 org.springframework.web.bind.annotation.RequestParam; 수입 org.springframework.web.bind.annotation.ResponseBody; 수입 hello.User; 수입 hello.UserRepository; @Controller // 이이 클래스 컨트롤러임을 의미 @RequestMapping은 (경로 = "/ 데모") //이 / (응용 프로그램 경로 후) 데모와 URL의 시작을 의미 공공 클래스 MainController를 { @Autowired는 // 이 userRepository라는 빈 얻을 의미 // 자동 생성 봄으로, 우리는 데이터를 처리하는 데 사용할 것이다 개인 UserRepository의 userRepository을; (경로 @GetMapping = "추가 /") // 지도 만 요청 GET 공공 @ResponseBody 문자열 addNewUser (@RequestParam 문자열 이름 , @RequestParam 문자열 이메일) { // @ResponseBody가 반환 된 문자열 응답을 의미하지 뷰 이름 / /이 @RequestParam는 GET 또는 POST 요청으로부터 파라미터 수단 사용자 N = 새로운 사용자 (); n.setName (이름); n.setEmail (이메일); userRepository.save (N); 반환 "저장"을 ; } @GetMapping (경로 = "/ 모든" ) 공공 @ResponseBody의 Iterable <사용자> getAllUsers () { // 이것은 사용자와 JSON 또는 XML을 반환 반환 userRepository.findAll를 (); } }
이것은 새로운 컨트롤러 봄 응용 프로그램 (컨트롤러)입니다.
위의 Application.java 새 폴더, 다음과 같이 :
패키지 , 안녕하세요 수입 org.springframework.boot.SpringApplication; 수입 org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication 공용 클래스 응용 { 공공 정적 무효 메인 (문자열 []에 args) { SpringApplication.run (. 애플리케이션 클래스 , 인수); } }
그것은 봄 부트 프로젝트의 주 프로그램 항목이었다.
5 단계는 실행 항아리 패키지를 만들
CD spring_mysql
Gradle을 빌드
가공 후, 생성 된 GS는-액세스하는 데이터-mysql을-0.1.0.jar를 빌드 / libs와 폴더에.
운영 및 테스트
봄 부팅 다음 명령을 사용하여 프로젝트를 시작
자바 -jar 빌드 / libs와의 /의 GS-액세스하는 데이터-mysql을-0.1.0.jar
브라우저 테스트에서 다음 URL을 입력 :
localhost:8080/demo/add?name=Alex&email=alex@baidu.com
localhost:8080/demo/add?name=Jclian&email=github@sina.com
localhost:8080/demo/add?name=Bob&email=bob@google.com localhost:8080/demo/add?name=Cook&email=cook@apple.com localhost:8080/demo/add?name=Mark&email=mark@west.com
매개 변수 이름과 이메일 프로그램의 값은 데이터베이스에있는 레코드를 해결하고 사용자 테이블에 저장됩니다, 같은 브라우저 인터페이스는 다음과 같습니다 :
브라우저 로컬 호스트의 URL을 입력 : 8080 / 데모 / 모두가, 당신은 단지 우리가 기록 (JSON 형식)에 삽입 MySQL이 우리를 볼 수 있습니다 :
아래 그림과 같이 마지막으로, 우리는, MySQL은 데이터가 성공적으로 삽입되는 결과를 보러 갔다 :