어제 못한 API 이어 하기
API 는 연속적으로 적는게 좋아보여 어제 글 수정하여 내용 추가
https://han-s-coding.tistory.com/98
어느 페이지의 원하는 항목들 가져오기, 웹 크롤링
아래 의존성 추가하기
implementation 'org.jsoup:jsoup:1.17.2'
@GetMapping("/html")
public String html() throws Exception {
String naver = "http://www.naver.com";
String clien = "http://www.clien.net/service/";
// org.jsoup.nodes.Document doc = Jsoup.parse(naver);
// naver 사이트의 html 코드들을 다 가져옴
// org.jsoup.nodes.Document doc = Jsoup.connect(naver).get();
// System.out.println(doc);
// 클리앙 사이트 가져와보기
org.jsoup.nodes.Document clienDoc = Jsoup.connect(clien).get();
// 클리앙 사이트의 class 가 somoim 인 것 고르기, html 코드가 나옴
// <a class="menu-group all somoim" href="/service/somoim"> <span class="fa fa-angle-right"></span> <span class="menu_over">소모임</span> </a>
// Elements clienElement = clienDoc.select(".somoim");
// a 태그의 .menu-list .somoim 클래스의 하위 .menu_over 의 코드를 가져옴
Elements clienElement = clienDoc.select("a.menu-list.somoim .menu_over");
System.out.println(clienElement.size());
for (Element ele : clienElement) {
// ele.text() 를 사용하면 태그 안의 text 만 뽑아낼 수 있음 etc) WOW당
// 그냥 ele 를 출력하면 전체 태그 출력
// <span class="menu_over">WOW당</span>
System.out.println(ele);
}
return "";
}
SQL
select mm.*
from (select cast(@rownum:=@rownum + 1 as unsigned) as rowNum, m.* from multiboardview m,
(select @Rownum:=0) as R
where mtcate = 1
order by mtno ASC) mm
ORDER by mtno DESC
limit 0, 10
SELECT ff.*, m.mname
FROM(SELECT @ROWNUM:=@ROWNUM+1 AS rowNum, bb.*, (SELECT COUNT(*) FROM multiboard WHERE mtdel=1) AS COUNT
FROM (SELECT b.mtno, b.mttitle, b.mtdate, b.mtdel, b.mno, b.mtcate
FROM multiboard b) bb, (SELECT @ROWNUM:=0) AS R
WHERE mtcate=1
ORDER BY bb.mtno ASC) AS ff JOIN member m ON ff.mno = m.mno
ORDER BY mtno DESC
LIMIT 0, 10
어떤건지.. 알아봐야겠다..
JPA
JPA 란 무엇인가
JPA 방언 설정하기
# JPA 방언 설정
# spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MariaDB103Dialect
# MariaDB103 > 에서 오류 발생.. 3 을 6 으로 변경하여 오류 해결
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MariaDB103Dialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.show_sql=true
create : 실행할 때마다 기존 테이블 삭제 후 다시 생성 (DROP + CREATE)
create-drop : create와 같으나 애플리케이션 종료 시점에 테이블 삭제
update : 엔티티 매핑 정보를 비교하여 변경된 내용만 반영
validate : 엔티티와 테이블이 정상적으로 매핑되었는지만 확인
none : 사용하지 않음
JPA 추가 설정
JpaRepository 를 상속받는 JPABoardRepository 만들기
package com.solbum.web.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import com.solbum.web.entity.JPABoard;
public interface JPABoardRepository extends JpaRepository<JPABoard, Integer> {
}
JPABoard 만들기
@Getter
@Setter
@Entity
public class JPABoard {
/**
* jb -> JPA Board <br>
* board_no 값을 받음
*/
@Id // PK 값
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int jbno;
// PK 값 외의 것
@Column(columnDefinition = "TEXT") // 해당 열의 형식을 지정할 수 있음
private String jbtitle;
@Column(columnDefinition = "LONGTEXT")
private String jbcontent;
// 해당 열의 기본 값을 지정할 수 있음
@ColumnDefault("CURRENT_TIMESTAMP")
private LocalDateTime jbdate = LocalDateTime.now();
/**
* 조회수
*/
@ColumnDefault(value = "1")
private int jbread;
/**
* 좋아요 수
*/
@ColumnDefault("0")
private int jblike;
}
'Spring' 카테고리의 다른 글
240315 도커 (0) | 2024.03.15 |
---|---|
240314 스프링 부트 (2) | 2024.03.14 |
240312 스프링 부트 (0) | 2024.03.12 |
240311 스프링 부트 (0) | 2024.03.11 |
240308 스프링 부트 (1) | 2024.03.08 |