SpringBoot 해보기 ~DB 액세스(mybatis)편~ 데이터 취득①
13383 단어 메모spring-boot초보자입문
목적
자기 학습용・초보자용 메모.
이번에는 mybatis에서 DB 액세스를 하여 데이터를 취득하는 샘플 프로그램을 작성한다.
개요
MySQL 설치
데이터베이스 작성
애플리케이션 구현
MySQL 설치
MySQL을 설치합니다.
※설치 방법에 대해서는 아래 링크 참조
DBOnline
데이터베이스 작성
애플리케이션에서 작성할 데이터베이스 작성
A5:SQL MK-2 을 사용합니다.
※데이터베이스의 접속 방법에 대해서는 생략합니다만 아래 링크를 참조
데이터베이스에 연결하는 방법
테이블 만들기
그냥 표시하기 때문에 간단한 테이블을 만듭니다.
【userinfo(사용자 정보)】
논리 이름
논리 이름
금형
문자 수
제약
id
ID
integer
NOT NULL, PRIMARY KEY
이름
이름
varchar
255
sex
성별
varchar
1
create table userinfo (id integer NOT NULL PRIMARY KEY,
name varchar(255),
sex char(1));
다음은 데이터를 만듭니다.
INSERT INTO userinfo VALUES (1,'来栖翔','男');
INSERT INTO userinfo VALUES (2,'小野寺梓','女');
만들 수 있었던 것처럼 확인 ...
SELECT * FROM userinfo;
확인할 수 있었다 (๑˃̵ᴗ˂̵)و 야시!
애플리케이션 구현
응용 프로그램을 만듭니다.
그런 다음 라이브러리를 선택합니다. 선택한 것은 다음과 같습니다.
항번
도서관
1
Spring Boot DevTools
2
롬복
3
Spring Configuration Processor
4
MyBatis Framework
5
MySQL 드라이버
6
Thymeleaf
7
Spring Web
패키지 탐색기에 프로젝트가 표시되는 ╭(·ㅂ·)و
폴더 구성
application.properties 만들기
application.properties#MySQLのドライバ設定
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#接続用URL
spring.datasource.url=jdbc:mysql://localhost/userinfo?serverTimezone=JST
#ユーザ名
spring.datasource.username=user1
#パスワード
spring.datasource.password=p@ssword
클래스와 인터페이스 만들기
entity, mapper, controller를 만듭니다.
·entity:변수와 그 setter, getter만을 가지는 클래스
MyBatis는이 클래스에 테이블의 데이터를 저장합니다.
· 맵퍼 : 인터페이스이지만 구상 클래스는 MyBatis가 XML SQL 정보 등을 사용하여 자동으로 작성합니다.
・controller:MyBatis가 자동으로 생성한 매퍼의 구상 클래스를 Spring이 DI 해 준다
UserInfo.javapackage org.app.dbapp.entity;
public class UserInfo {
private String id;
private String name;
private String sex;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
UserInfoMapper.javapackage org.app.dbapp.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.app.dbapp.entity.UserInfo;
@Mapper
public interface UserInfoMapper {
List<UserInfo> selectAll();
}
DemoController.javapackage org.app.dbapp.controller;
import java.util.List;
import org.app.dbapp.entity.UserInfo;
import org.app.dbapp.mapper.UserInfoMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class IndexController {
@Autowired
UserInfoMapper userInfoMapper;
@RequestMapping
public String index(Model model) {
List<UserInfo> list = userInfoMapper.selectAll();
model.addAttribute("userInfo", list);
return "index";
}
}
XML 파일 만들기
resource 아래에 만든 폴더에 SQL을 포함하는 XML 파일을 만듭니다.
UserInfoMapper.xml<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.app.dbapp.mapper.UserInfoMapper">
<select id="selectAll" resultType="org.app.dbapp.entity.UserInfo">
SELECT * FROM userinfo;
</select>
</mapper>
Thymeleaf 만들기
그런 다음 resources/templates 아래에 Tymeleaf를 배치합니다.
index.html<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<table border="1">
<tr>
<th>ID</th>
<th>名前</th>
<th>性別</th>
</tr>
<tr th:each="info: ${userInfo}">
<td th:text="${info.id}"></td>
<td th:text="${info.name}"></td>
<td th:text="${info.sex}"></td>
</tr>
</table>
</body>
</html>
실행
Spring Boot App에서 시작하여 http://localhost:8080에 액세스하면 이러한 화면이 표시됩니다.
다음 번
SpringBoot 해보기 ~DB 액세스(mybatis)편~ 데이터 취득②
Reference
이 문제에 관하여(SpringBoot 해보기 ~DB 액세스(mybatis)편~ 데이터 취득①), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/y_ogawa_naaaa/items/26da3b019f090abcfe36
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
애플리케이션에서 작성할 데이터베이스 작성
A5:SQL MK-2 을 사용합니다.
※데이터베이스의 접속 방법에 대해서는 생략합니다만 아래 링크를 참조
데이터베이스에 연결하는 방법
테이블 만들기
그냥 표시하기 때문에 간단한 테이블을 만듭니다.
【userinfo(사용자 정보)】
논리 이름
논리 이름
금형
문자 수
제약
id
ID
integer
NOT NULL, PRIMARY KEY
이름
이름
varchar
255
sex
성별
varchar
1
create table userinfo (id integer NOT NULL PRIMARY KEY,
name varchar(255),
sex char(1));
다음은 데이터를 만듭니다.
INSERT INTO userinfo VALUES (1,'来栖翔','男');
INSERT INTO userinfo VALUES (2,'小野寺梓','女');
만들 수 있었던 것처럼 확인 ...
SELECT * FROM userinfo;
확인할 수 있었다 (๑˃̵ᴗ˂̵)و 야시!
애플리케이션 구현
응용 프로그램을 만듭니다.
그런 다음 라이브러리를 선택합니다. 선택한 것은 다음과 같습니다.
항번
도서관
1
Spring Boot DevTools
2
롬복
3
Spring Configuration Processor
4
MyBatis Framework
5
MySQL 드라이버
6
Thymeleaf
7
Spring Web
패키지 탐색기에 프로젝트가 표시되는 ╭(·ㅂ·)و
폴더 구성
application.properties 만들기
application.properties#MySQLのドライバ設定
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#接続用URL
spring.datasource.url=jdbc:mysql://localhost/userinfo?serverTimezone=JST
#ユーザ名
spring.datasource.username=user1
#パスワード
spring.datasource.password=p@ssword
클래스와 인터페이스 만들기
entity, mapper, controller를 만듭니다.
·entity:변수와 그 setter, getter만을 가지는 클래스
MyBatis는이 클래스에 테이블의 데이터를 저장합니다.
· 맵퍼 : 인터페이스이지만 구상 클래스는 MyBatis가 XML SQL 정보 등을 사용하여 자동으로 작성합니다.
・controller:MyBatis가 자동으로 생성한 매퍼의 구상 클래스를 Spring이 DI 해 준다
UserInfo.javapackage org.app.dbapp.entity;
public class UserInfo {
private String id;
private String name;
private String sex;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
UserInfoMapper.javapackage org.app.dbapp.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.app.dbapp.entity.UserInfo;
@Mapper
public interface UserInfoMapper {
List<UserInfo> selectAll();
}
DemoController.javapackage org.app.dbapp.controller;
import java.util.List;
import org.app.dbapp.entity.UserInfo;
import org.app.dbapp.mapper.UserInfoMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class IndexController {
@Autowired
UserInfoMapper userInfoMapper;
@RequestMapping
public String index(Model model) {
List<UserInfo> list = userInfoMapper.selectAll();
model.addAttribute("userInfo", list);
return "index";
}
}
XML 파일 만들기
resource 아래에 만든 폴더에 SQL을 포함하는 XML 파일을 만듭니다.
UserInfoMapper.xml<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.app.dbapp.mapper.UserInfoMapper">
<select id="selectAll" resultType="org.app.dbapp.entity.UserInfo">
SELECT * FROM userinfo;
</select>
</mapper>
Thymeleaf 만들기
그런 다음 resources/templates 아래에 Tymeleaf를 배치합니다.
index.html<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<table border="1">
<tr>
<th>ID</th>
<th>名前</th>
<th>性別</th>
</tr>
<tr th:each="info: ${userInfo}">
<td th:text="${info.id}"></td>
<td th:text="${info.name}"></td>
<td th:text="${info.sex}"></td>
</tr>
</table>
</body>
</html>
실행
Spring Boot App에서 시작하여 http://localhost:8080에 액세스하면 이러한 화면이 표시됩니다.
다음 번
SpringBoot 해보기 ~DB 액세스(mybatis)편~ 데이터 취득②
Reference
이 문제에 관하여(SpringBoot 해보기 ~DB 액세스(mybatis)편~ 데이터 취득①), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/y_ogawa_naaaa/items/26da3b019f090abcfe36
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#MySQLのドライバ設定
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#接続用URL
spring.datasource.url=jdbc:mysql://localhost/userinfo?serverTimezone=JST
#ユーザ名
spring.datasource.username=user1
#パスワード
spring.datasource.password=p@ssword
package org.app.dbapp.entity;
public class UserInfo {
private String id;
private String name;
private String sex;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
package org.app.dbapp.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.app.dbapp.entity.UserInfo;
@Mapper
public interface UserInfoMapper {
List<UserInfo> selectAll();
}
package org.app.dbapp.controller;
import java.util.List;
import org.app.dbapp.entity.UserInfo;
import org.app.dbapp.mapper.UserInfoMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class IndexController {
@Autowired
UserInfoMapper userInfoMapper;
@RequestMapping
public String index(Model model) {
List<UserInfo> list = userInfoMapper.selectAll();
model.addAttribute("userInfo", list);
return "index";
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.app.dbapp.mapper.UserInfoMapper">
<select id="selectAll" resultType="org.app.dbapp.entity.UserInfo">
SELECT * FROM userinfo;
</select>
</mapper>
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<table border="1">
<tr>
<th>ID</th>
<th>名前</th>
<th>性別</th>
</tr>
<tr th:each="info: ${userInfo}">
<td th:text="${info.id}"></td>
<td th:text="${info.name}"></td>
<td th:text="${info.sex}"></td>
</tr>
</table>
</body>
</html>
SpringBoot 해보기 ~DB 액세스(mybatis)편~ 데이터 취득②
Reference
이 문제에 관하여(SpringBoot 해보기 ~DB 액세스(mybatis)편~ 데이터 취득①), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/y_ogawa_naaaa/items/26da3b019f090abcfe36텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)