Spring boot練習
12970 ワード
SpringBootを学ぶために、ブログを参考に真似することにしました.
実は私が見つけたのではなく、強制したのです.🥕🥕
注意:https://corini.tistory.com/entry/%ED%83%80%EC%9E%84%EB%A6%AC%ED%94%84Thymeleaf%EB%A1%9C-%ED%8C%8C%EC%9D%BC%EA%B2%8C%EC%8B%9C%ED%8C%90-%EB%A7%8C%EB%93%A4%EA%B8%B0-1-%EA%B5%AC%EC%83%81-%EB%B0%8F-%EC%8B%9C%EC%9E%91%EC%97%90-%EC%95%9E%EC%84%9C-1n-draft?category=856118
始める前に私のノートパソコンでやるとDBに繋がらないという問題がありましたが、間違えたのかわかりません
だからいろいろ探して、jdkを取り付け直したり、環境変数を設定したりして、さっきディスプレイを壊したいと思っていましたが、今は落ち着いています.🙂
プロジェクトの作成
Spring Web-Spring基本Webプロジェクトに必要なライブラリ を提供 Spring Boot DevTools-コードを変更し、保存時にサーバを自動的に再実行 Lombok-@data宣言(setter,getter自動作成) MySQL Driver-MySQL DBMS選択 MyBatis Framework-MySQLを簡単に使用できるライブラリ をサポート Thymeleaf
パッケージ構造もブログ内容のように作られていました.
MyBatisとMySQLが連携して動作するコードを入力します
通常、MySQLポート番号は3306です
VO、Mapperの作成
xmlクエリー文でifがどういう意味かを検索します Service - Service Implement Lombok電話
実は私が見つけたのではなく、強制したのです.🥕🥕
注意:https://corini.tistory.com/entry/%ED%83%80%EC%9E%84%EB%A6%AC%ED%94%84Thymeleaf%EB%A1%9C-%ED%8C%8C%EC%9D%BC%EA%B2%8C%EC%8B%9C%ED%8C%90-%EB%A7%8C%EB%93%A4%EA%B8%B0-1-%EA%B5%AC%EC%83%81-%EB%B0%8F-%EC%8B%9C%EC%9E%91%EC%97%90-%EC%95%9E%EC%84%9C-1n-draft?category=856118
始める前に私のノートパソコンでやるとDBに繋がらないという問題がありましたが、間違えたのかわかりません
だからいろいろ探して、jdkを取り付け直したり、環境変数を設定したりして、さっきディスプレイを壊したいと思っていましたが、今は落ち着いています.🙂
プロジェクトの作成
Dependencies
パッケージ構造もブログ内容のように作られていました.
application.properties
MyBatisとMySQLが連携して動作するコードを入力します
#MySQL 설정
spring.datasource.url=jdbc:mysql://localhost:3306/
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=
#MyBatis 설정
mybatis.mapper-locations=classpath*:mapper/*.xml
ユーザー名とパスワードアカウントとパスワードを入力通常、MySQLポート番号は3306です
VO、Mapperの作成
必要なオブジェクトを掲示板に作成
package com.example.demo.bean;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class FileBoardVO {
private int b_no; // 게시글 고유번호
private String title; // 제목
private String content; // 내용
private String writer; // 작성자
private Date reg_date; // 작성일자
}
@データアシスタントを追加します.(Lombok)
@NorgConstructor:パラメータなしのジェネレータを作成する
@AllArgConstructor:すべてのフィールドにビルダーを自動的に作成
前にあなたが授業で使うと言ったら、両方使うとか、使わなくてもいいとか、記憶がぼんやりしています.
Mapper
package com.example.demo.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import com.example.demo.bean.FileBoardVO;
@Mapper
public interface FileBoardMapper {
List<FileBoardVO> getFileBoardList(); // 게시글 리스트 출력
FileBoardVO fileBoardDetail(int b_no); // 게시글 세부 내용 보기
int fileBoardInsert(FileBoardVO fileBoard); // 게시글 생성
int fileBoardUpdate(FileBoardVO fileBoard); // 게시글 수정
int fileBoardDelete(int bno); // 게시글 삭제
}
@Mapperプロンプトを使用すると、Mapperになります.
出力リストの作成、コンテンツの表示、登録、変更、投稿の削除に必要な5つの方法.
Service
package com.example.demo.service;
import java.util.List;
import com.example.demo.bean.FileBoardVO;
public interface FileBoardService {
List<FileBoardVO> getFileBoardList();
FileBoardVO fileBoardDetail(int b_no);
int fileBoardInsert(FileBoardVO fileBoard);
int fileBoardUpdate(FileBoardVO fileBoard);
int fileBoardDelete(int bno);
}
Service Implement
package com.example.demo.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.demo.bean.FileBoardVO;
import com.example.demo.mapper.FileBoardMapper;
@Service
public class FileBoardServiceImpl implements FileBoardService{
@Autowired
FileBoardMapper fileboardmapper;
@Override
public List<FileBoardVO> getFileBoardList() {
return fileboardmapper.getFileBoardList();
}
@Override
FileBoardVO fileBoardDetail(int b_no) {
return fileboardmapper.fileBoardDetail(b_no);
}
@Override
int fileBoardInsert(FileBoardVO fileBoard) {
return fileboardmapper.fileBoardInsert(fileBoard);
}
@Override
int fileBoardUpdate(FileBoardVO fileBoard) {
return fileboardmapper.fileBoardUpdate(fileBoard);
}
@Override
int fileBoardDelete(int bno) {
return fileboardmapper.fileBoardDelete(bno);
}
}
このブログはサービスとサービス実施に分かれていますが、うーん、前の授業でもそうしていましたか?もう一度確認しなければなりません.
データベースの作成
ブログコンテンツでMySQL Monitorを使ってデータベースを作成する際にWorkbenchを使いたいので利用することにしました.
MySQL Workbenchでデータベースを作成します.
Applyをクリックして保存し、ディスプレイで確認します.
mysqlログイン
きれいですね.
SpringBootに移動し、データベース名と時間設定を追加する必要があります.
xml
次にxmlファイルを作成し、クエリー文を入力します.<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTDMapper3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.FileBoardMapper">
<select id="getFileBoardList" resultType="com.example.demo.bean.FileBoardVO">
SELECT * FROM file_board
ORDER BY b_no
</select>
<select id="fileBoardDetail" parameterType="int" resultType="com.example.demo.bean.FileBoardVO">
SELECT * FROM file_board
WHERE b_no=#{b_no}
</select>
<insert id="fileBoardInsert" parameterType="com.example.demo.bean.FileBoardVO" keyProperty="b_no">
INSERT INTO file_board(title, content, writer)
VALUES(#{title}, #{content}, #{writer})
</insert>
<update id="fileBoardUpdate" parameterType="com.example.demo.bean.FileBoardVO">
UPDATE file_board SET
<if test="title != null">title=#{title}</if>
<if test="title != null and content != null">,</if>
<if test="content != null">content=#{content}</if>
WHERE b_no=#{b_no}
</update>
<delete id="fileBoardDelete" parameterType="int">
DELETE FROM file_board WHERE b_no=#{b_no}
</delete>
</mapper>
package com.example.demo.bean;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class FileBoardVO {
private int b_no; // 게시글 고유번호
private String title; // 제목
private String content; // 내용
private String writer; // 작성자
private Date reg_date; // 작성일자
}
package com.example.demo.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import com.example.demo.bean.FileBoardVO;
@Mapper
public interface FileBoardMapper {
List<FileBoardVO> getFileBoardList(); // 게시글 리스트 출력
FileBoardVO fileBoardDetail(int b_no); // 게시글 세부 내용 보기
int fileBoardInsert(FileBoardVO fileBoard); // 게시글 생성
int fileBoardUpdate(FileBoardVO fileBoard); // 게시글 수정
int fileBoardDelete(int bno); // 게시글 삭제
}
package com.example.demo.service;
import java.util.List;
import com.example.demo.bean.FileBoardVO;
public interface FileBoardService {
List<FileBoardVO> getFileBoardList();
FileBoardVO fileBoardDetail(int b_no);
int fileBoardInsert(FileBoardVO fileBoard);
int fileBoardUpdate(FileBoardVO fileBoard);
int fileBoardDelete(int bno);
}
package com.example.demo.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.demo.bean.FileBoardVO;
import com.example.demo.mapper.FileBoardMapper;
@Service
public class FileBoardServiceImpl implements FileBoardService{
@Autowired
FileBoardMapper fileboardmapper;
@Override
public List<FileBoardVO> getFileBoardList() {
return fileboardmapper.getFileBoardList();
}
@Override
FileBoardVO fileBoardDetail(int b_no) {
return fileboardmapper.fileBoardDetail(b_no);
}
@Override
int fileBoardInsert(FileBoardVO fileBoard) {
return fileboardmapper.fileBoardInsert(fileBoard);
}
@Override
int fileBoardUpdate(FileBoardVO fileBoard) {
return fileboardmapper.fileBoardUpdate(fileBoard);
}
@Override
int fileBoardDelete(int bno) {
return fileboardmapper.fileBoardDelete(bno);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTDMapper3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.FileBoardMapper">
<select id="getFileBoardList" resultType="com.example.demo.bean.FileBoardVO">
SELECT * FROM file_board
ORDER BY b_no
</select>
<select id="fileBoardDetail" parameterType="int" resultType="com.example.demo.bean.FileBoardVO">
SELECT * FROM file_board
WHERE b_no=#{b_no}
</select>
<insert id="fileBoardInsert" parameterType="com.example.demo.bean.FileBoardVO" keyProperty="b_no">
INSERT INTO file_board(title, content, writer)
VALUES(#{title}, #{content}, #{writer})
</insert>
<update id="fileBoardUpdate" parameterType="com.example.demo.bean.FileBoardVO">
UPDATE file_board SET
<if test="title != null">title=#{title}</if>
<if test="title != null and content != null">,</if>
<if test="content != null">content=#{content}</if>
WHERE b_no=#{b_no}
</update>
<delete id="fileBoardDelete" parameterType="int">
DELETE FROM file_board WHERE b_no=#{b_no}
</delete>
</mapper>
Reference
この問題について(Spring boot練習), 我々は、より多くの情報をここで見つけました https://velog.io/@ayleen9506/Spring-boot-연습テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol