반응형

대소문자 구분

   
 oracle  x
 mySQL  x (display는 다르게 나오지만 호환됨), 컬럼 내부 값이 설정에 따라 대소문자 구분할수도 안할수도 있음
 java  o
 html  x 
 xml  o 
 javascript  o
 react  o

 

jQuery $()

JSP EL ${}

myBatis #{} (${}도 쓰이지만 보안 등의 문제로 #{}를 쓰는 것이 바람직)

 

element, attribute, parameter, argument, property, key-value, 

   input  output
 servlet  Request attribute  Response attribute
 myBatis  parameterType  resultType, resultMap
     
     

 

XML

element=요소, attribute=속성

<요소이름 속성1="속성값" 속성2="속성값"... >

 

반응형

'etc' 카테고리의 다른 글

504 gateway time-out 에러 해결방법  (0) 2022.09.08
proxy/reverse proxy, web server, load balancer 개념  (0) 2022.09.08
character encoding  (0) 2022.07.11
app-ads.txt  (0) 2022.05.04
Web Application Architecture 교육 (2019/03/11~03/15)  (0) 2019.03.11
반응형

3/11: HTML, CSS

    • 구분자 역할: 요즘은 XML이 대신함
    • 기능적 역할: 요즘은 거의 CSS가 대신함
    • 주로 쓰는 건 3가지
      • <a href..
        • <a href="${root}/board/read.do?boardNumber=${board.boardNumber}">${board.subject}</a>
        • <a> 태그로 요청시 post로 전달할 수 있는 방법은?
      • <img>
      • <form> https://www.w3schools.com/html/html_forms.asp
        • parameter
          • <input type="text" name="firstname" value=""/>
          • input(name, value) ====> Request객체의 attribute(key, value) 가 된다!!!
          • name이 없으면 서버에 아예 전달되지 않음
        • request보내기 
          • 한 form에서 여러 sumit 버튼 이용하기 
  • <form method="post" name="form"> -> action은 써도 소용없음 "javascript: form.action='/manage/update';"때문에 submit버튼 누를때마다 바뀌므로
  •     <input type="text" value="value1" name="key1" /> -> 얘는 Request Attribute로 전달
  •     <input type="text" value="value2" name="key2" /> -> 얘는 Request Attribute로 전달
  •     <input type="submit" value="수정" onclick="javascript: form.action='/manage/update';"/> 
  •     <input type="submit" value="삭제" onclick="javascript: form.action='/manage/delete';"/>
  •      <input type="button"...>에서는 form.action으로 전달못함?
  • </form>
            • 아래와 같이 하면 구지 <form> tag와 같이 쓰지 않아도 됨, but html5부터 지원하므로 IE9이하 브라우저에선 작용을 안함
<input type="submit" value="수정" formaction="/manage/update">
<input type="submit" value="삭제" formaction="/manage/delete">
          • https://kutar37.tistory.com/entry/%ED%95%9C%EA%B0%9C%EC%9D%98-Form%EC%97%90%EC%84%9C-%EC%97%AC%EB%9F%AC%EA%B0%9C-Submit-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0
  • block vs inline
    • block요소: 줄바꿈O, <div>
    • inline요소: 줄바꿈X, <span>
    • CSS는 block요소에 적용해야 제대로 적용됨, span, font등 inline 요소에 적용하면 width, height, margin, padding등이 의도한 것과 다르게 적용이 안되거나 함, 그럴때는 display: inline-block 속성을 줘서 inline애들을 inline-block으로 바꿔줘보자 
    • 참고: https://www.w3schools.com/css/css_inline-block.asp
  • Web에서는 상대경로 사용해야함
    • ./ 현재폴더
    • ../부모폴더
    • ./../: 현재폴더의 상위폴더, 즉 상위폴더

 

jQuery

1) 선택자

2) 함수

ready(function): 문서가 로드되어 준비상태가 되었을 때 처리를 위한 함수

 

 

var obj=new jQuery(document);
obj.ready(testFun);
function testFun(){alert("hello");}

 

 

 

 

 

 new jQuery(document).ready(testFun);

 

$(document).ready(function(){alert("hello");});

 

 

즉, new jQuery( ) → $( )

 

3) 이벤트, 효과, 테마

 

pattern

    • 디렉토리 패턴: 각각 url로 요청
    • 확장자 패턴: *.do로 요청
      • @WebServlet(urlPatterns="*.do", initParams=@WebInitParam(name="configFile", value="/WEB-INF/commandURI.properties"))
    • front controller pattern: 모든 요청을 특정 서블릿이 받아서 실제 controller에 전달해줌
      • handler mapping
        • @WebServlet(urlPatterns="*.do", initParams=@WebInitParam(name="configFile", value="/WEB-INF/commandURI.properties"))
        • servlet init() method에서 파랑이 Properties를 불러와서 아래와 같이 request별 handler객체를 직접 생성하는 방법으로 handlerMapping함
     HashMap<String, Object> commandMap = new HashMap<String, Object>();
    Iterator<Object> keyIter=propertiesFile.keySet().iterator();
    while(keyIter.hasNext()){
    Class<?> handlerCalss=Class.forName(propertiesFile.getProperty((String)keyIter.next()));
    Object handlerInstance=handlerCalss.newInstance();
    commandMap.put((String)keyIter.next(), handlerInstance);
    
      • 전달받은 view path를 forward하는 방법
RequestDispatcher rd=request.getRequestDispatcher(viewPath); //viewPath="/WEB-INF/board/writeOK.jsp"
rd.forward(request, response);

 

JSP: 결국은 html +javascript로 변환되는 것 (JSP > Servlet > html+javascript)

  • encoding
    • html을 완전히 그대로 쓰면 한글 encoding이 깨짐
    • 최소한 아래 1줄은 추가해줘야 한글 UTF-8 처리가능함
    • <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    • 위 1줄 없이<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">이거만 쓰면 한글 깨짐
  • 톰캣에 의해 생성된 객체 request, response, session등을 서블릿과 공유한다, 그래서 request에 setParameter하면 jsp에서도 접근가능 
    • Controller(servlet)가 View(JSP)에게 model을 전달하는 방법이 바로 이것!
    • request.setAttribute("writeResult", writeResult);로 세팅하면, JSP에서 ${writeResult}로 사용가능
  • JSP에서 html comment <!-- --> 이거 안에 jsp syntax error있어도 에러남, <!-- -->안에 있어도 컴파일에러가 나며 컴파일에러는 무조건 잡아야 실행에러안남, syntax error 안고치고 주석처리하려면 태그내에서<% %> 주석을 써야함
  • EL(Expression Language) 
    • ${}이렇게 생긴거 
    • ${root} root 선언 빼먹어도 syntax error(compile error)안나고 단지 html로 변환될 때 empty string이 됨, 실행시 syntax error는 어디가 잘못인지 알려주지만 위치를 알려주지만, 변수명 잘못 쓰거나 한건은 체크가 안되고 html로 변환된 소스를 참고하여 비교해야 하므로 주의를 요함
  • JSTL
    • Java를 tag처럼 쓰게해줌
    •  
    • <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>  
      • <c:if test='${writeResult==1}'>
      • <c:forEach var="board" items="${boardList}">
      •   
    • <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 
      • <fmt:formatDate value="${board.writeDate}" type="both"/>

 

myBatis 참고:http://www.mybatis.org/mybatis-3/ko/

  • List<E> org.apache.ibatis.session.SqlSession.selectList(String arg0, Object arg1, RowBounds arg2)
  • Map<K, V> org.apache.ibatis.session.SqlSession.selectMap(String arg0, Object arg1, String arg2, RowBounds arg3)
  • T org.apache.ibatis.session.SqlSession.selectOne(String arg0, Object arg1)
  • void org.apache.ibatis.session.SqlSession.select(String arg0, Object arg1, RowBounds arg2, ResultHandler arg3)
  •  
  • input: parameterType, 
  • out: resultType, resultMap (DB 컬럼과 DTO/VO의 property변수명과 일치하면 resultType을 쓰고 아니면 매핑값을 지정해놓고 resultMap을 써야함)
  • session.commit(); 해주는 거 잊지말자!!

 

반응형

'etc' 카테고리의 다른 글

504 gateway time-out 에러 해결방법  (0) 2022.09.08
proxy/reverse proxy, web server, load balancer 개념  (0) 2022.09.08
character encoding  (0) 2022.07.11
app-ads.txt  (0) 2022.05.04
헷갈리는 것들  (0) 2019.03.15
반응형

Spring-JPA

JPQL

JPA column ordering

* column 순서조정할 방법 생각해보자
* boolean은 bit(1)로 변환됨, 그런데 이게 default 0인지 아니면 실제 0인지 알수가 없음
* useFlag,captionFlag 등 boolean 기본값 0들어가고 있음
* varchar 길이조정 - 기존에는 varchar(1)? char(1) char(1)
* java long,int에는 null이 못들어감
* @Column(updatable = false): mysql update가능함 무슨의미가 있음?

* mySQL char, varchar, bit, int에는 null가능? 가능함
* mySQL char에 ''가능? 가능함
* mySQL char에 더 적은 스트링도 들어감, 다만 공간을 그만큼 쓰는듯
* mySQL bit, int에 ''가능? 가능함 근데 1 warning(s): 1366 Incorrect integer value ''이 0으로 들어감

hibernate ddl 설정
https://github.com/HomoEfficio/dev-tips/blob/master/hibernate.hbm2ddl.auto%20%EC%9C%84%ED%97%98%20%ED%97%B7%EC%A7%80.md
http://egloos.zum.com/gyumee/v/2483659

JPA entity, domain의 의미

http://www.javajigi.net/pages/viewpage.action?pageId=5924

[

JPA에 대한 소개, 활용방안, Spring 프레임워크와 통합 - 오픈 소스 스터디 - Confluence

주제선정할때 그냥 제일 마지막에 있는놈을 찍는 다는것이 JPA를 선택하게 되었군요 ㅎ 준비할 시간을 많이 가지자는 의미에서 마지막을 선택한건데.. 결국 스터디 3일전에야 문서를 작성하고 책을 보기 시작하는군요 하하 다음부터는 먼저 맞는 매가 덜아프다는 선조들의 가르침을 따라야 할듯 합니다 ^^ 현재 개최되고 있는 SUN TECH DAY 2006 의 본행사 - Day 2 에 심층세션으로 ''EJB 3.0과 Java Persistence API: Persistence 단순화''라는 주제가 발표 됩니다. 본 스터디를 진행하신 후에 좀더 ...

www.javajigi.net

](http://www.javajigi.net/pages/viewpage.action?pageId=5924)

https://www.slideshare.net/zipkyh/spring-datajpa?next_slideshow=1

코드에 집중할 수 있다면 - 유지보수, 테스트, 디버깅, 객체지향

SpringDataJPA - 스프링 캠프 *from *Younghan Kim

docker https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html

반응형

'java, spring' 카테고리의 다른 글

javax.validation.constraints.NotBlank vs NotNull  (0) 2019.11.12
spring error  (0) 2019.06.14
spring  (0) 2019.06.12
spring security...  (0) 2019.06.11
spring JPA 환경설정  (0) 2019.02.28
반응형

Eclipse

alt + shift + s → r

alt + shift + s → v

alt + shift + s → ?

alt + shift + s → ?

 getter, setter autocomplete

method override, implement

constructor

toString

ctrl + shift + f

마우스우클릭 > Refactor > Format

 자동 줄맞춤

 ctrl + d

 1줄 삭제

 

Excel

 alt + e + d

 셀 삭제

 Ctrl + Shift + '+'

 셀 추가

 Ctrl + 방향키

 마지막셀로 가기

 COUNTIFS(범위, 조건), COUNTIFS($I$3:$I$782,0)

 카운트

 빈 셀 포함된 영역 선택 → F5 or Ctrl+G → [이동]메뉴 대화창 하단부 [옵션]-[빈 셀] 체크후 [확인]  빈 셀만 선택된 상태에서 마우스의 오른쪽 [삭제]  [행 전체][확인]

 빈 셀 없애기

 

 

Windows

Ctrl + Shift + N

 새폴더 만들기

한글자음 + 한자키

특수문자 입력

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

'tips' 카테고리의 다른 글

[vsCode] java실행시 vmArgs 옵션추가방법 - launch.json에 추가  (0) 2022.06.16
[Windows]유무선 인터넷 우선순위 지정  (0) 2020.01.31
PlantUML  (0) 2019.11.08
Special Characters  (0) 2019.11.01
[vs code] shortcut, tips...  (0) 2019.07.31
반응형

https://victorydntmd.tistory.com/202?category=698080

 

1) 다음 메이븐 에러 발생

org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.MavenProject, org.apache.maven.archiver.MavenArchiveConfiguration)

해결책: https://stackoverflow.com/questions/37555557/m2e-error-in-mavenarchiver-getmanifest

maven 3.X대에서 발생, 위 해결책대로 2.6쓰니까 괜찮아짐

 

2) 다음 에러도 발생

dynamic web module 3.0 requires java 1.6 or newer in Maven Project

One or more constraints have not been satisfied

해결안하고 tomcat으로 실행하니 org.springframework.web.context.ContextLoaderListener classNotFoundError 발생

maven library에 분명히 위 spring-web library잡혔는데 뭔가 연결이 안되고 있나보다

해결책: https://btssgm.tistory.com/entry/dynamic-web-module-error

다시 tomcat run하니 해결됨

 

3) 그다음엔 jdbc 연결이 안되는 에러 발생

quick하게 찾아보니 springJDBC에서는 mysql8.0 연결이 안되니 5.6으로 다운그레이드해야 한다는 곳도 있고 jdbc driver버젼을 고치면 된다는 곳도 있었음

일단 간단한 jdbc연결부터 시도했으나 다음 에러 발생

Thu Feb 28 17:51:12 KST 2019 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.

 jdbc:mysql://localhost:3306/jpa?useSSL=false붙이니 위 ssl 관련 warning은 없어졌지만 여전히 연결은 안됨

 

? & todo) 

* DB는 어떤 protocol은 쓰는지? DBMS 마다 다른가? mysql 보니 ssl도 쓰는가보다

* port는 최상위 protocol layer에만 해당? ICMP 쓰는 ping은 port없음

* https://blog.woniper.net/256  eclipse>JPA Project로 JSE에서도 JPA 예제따라해보자!

 

반응형

'java, spring' 카테고리의 다른 글

javax.validation.constraints.NotBlank vs NotNull  (0) 2019.11.12
spring error  (0) 2019.06.14
spring  (0) 2019.06.12
spring security...  (0) 2019.06.11
jpa ...  (0) 2019.03.08
반응형
  • mySQL site에서 download메뉴로 가면 상용SW 설치하는 곳나옴, 돈안내고 개발용으로 쓰려면 developer zone으로 간 후 다운받아야함 (2020.01.23)
  •  
  • mysql: client 개념인듯
    • mysql -u [계정] -p [데이터베이스] - 여기에서 기본으로 들어갈꺼면[데이터베이스]는 생략가능한듯
    • mysql --defaults-file="C:\MYSQL\my.ini" -u root -p
    • -u 사용할 계정, 예) root
    • -p 패스워드 물어봄
    • --defaults-file
    • "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe" "--defaults-file=C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" "-uroot" "-p" "--default-character-set=utf8mb4"
  • mysqld: mysql daemon을 의미
    • 그냥 mysqld.exe 실행하니까 다음과 같은 에러발생
    • Can't change dir to 'D:\Program Files\MySQL\MySQL Server 5.7\data\'     (Errcode: 2 - No such file or directory)
      2015-11-17T08:30:18.822962Z 0 [Warning] TIMESTAMP with implicit DEFAULT     value is deprecated. Please use --explicit_defaults_for_timestamp server option     (see documentation for more details).
      2015-11-17T08:30:18.822962Z 0 [Warning] Insecure configuration for --secure-    file    -priv: Current value does not restrict location of generated files.     Consider setting it to a valid, non-empty path.
      2015-11-17T08:30:18.822962Z 0 [Note] mysqld (mysqld 5.7.9) starting as     process 1108 ...
      2015-11-17T08:30:18.838586Z 0 [Warning] Can't create test file D:\Program     Files\MySQL\MySQL Server 5.7\data\DESKTOP-RNBR3E8.lower-test
      2015-11-17T08:30:18.838586Z 0 [Warning] Can't create test file D:\Program     Files\MySQL\MySQL Server 5.7\data\DESKTOP-RNBR3E8.lower-test
      2015-11-17T08:30:18.838586Z 0 [ERROR] failed to set datadir to D:\Program     Files\MySQL\MySQL Server 5.7\data\
      2015-11-17T08:30:18.838586Z 0 [ERROR] Aborting

      (참고 https://stackoverflow.com/questions/33752407/mysqld-cant-change-dir-to-data-server-doesnt-start)

    • {mysql_home_dir}/data가 없어서 파일을 못써서 에러가 났다는 의미인듯 해서 data폴더 생성후 재실행하니 data폴더안에 에러로그가 쌓이고 역시 정상실행은 안됨, 에러로그안에는 data dictionary를 초기화못했다는 의미의 에러로그가 남아있었음
    • 뭔가 환경설정 세팅에 오류가 있는 것 같음
    • 결국 mysqld.exe --defaults-file=C:\ProgramData\MySQL\MySQL Server 8.0\my.ini 로 하니 해결됨
    • my.ini가 환경설정 관련 내용을 담고 있음
    • root PW 잊어버려서 mysqld.exe --defaults-file=C:\ProgramData\MySQL\MySQL Server 8.0\my.ini --skip-grant로 실행했으나 이렇게는 daemon이 떴다가 금방 꺼짐 뭔가 설정이 안맞는듯
 
  • mySQL 에러코드
    • ERROR 1045 (28000): Access denied for user
      • password 틀렸거나 password사용하지 않은 접근했을 때
      • 해결법: https://zetawiki.com/wiki/MySQL_ERROR_1045_%EC%A0%91%EA%B7%BC_%EA%B1%B0%EB%B6%80#cite_note-1
  • mysql command option 아래에서 참고할 것
    • https://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_datadir
  • root pw 변경방법
    • https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
  • 환경설정인 cnf(리눅스), ini(윈도우인듯) 파일 사용방법 관련
    • https://dev.mysql.com/doc/refman/8.0/en/option-files.html
    • 윈도우에서는 MySQL Installation Wizard를 사용해서 설치했다 면 --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini" 옵션을 추가해줘야함

-------------------------------------

2019/03/06 mysqld 실행하니 다음 에러 발생하면서 또 안됨 ㅠㅠ

 innodb_system data file 'ibdata1' must be writable 

다음과 같이 이것저것 조치하니까 됨

  • C:\ProgramData\MySQL\MySQL Server 8.0\Data\irdata1 파일의 쓰기권한이 없던 user에게 권한부여
  • C:\ProgramData\MySQL\MySQL Server 8.0를 D:\로 이동해보고 다시 원복함

-------------------------------------

workbench는 아무거나 실행되지 않고 새로 설치한 것으로만 실행됨

기존 workbench는 다음 에러메세지뜨며 실행안됨

Internal Error Exception caught while processing action from home screen: bad conversion

반응형

'db' 카테고리의 다른 글

oracle VS mysql  (0) 2020.02.26
mysql query tip  (0) 2020.01.31
H2 DB 사용방법  (0) 2019.10.30
mysql.*, information_schema.*  (0) 2019.09.06
daily check query (mysql & oracle)  (0) 2019.07.17

+ Recent posts