ajax로 데이터 전달/응답 받는법
2019-01-15 00:00:00 +0000데이터 전달 주의사항
- JavaBeans는 sevlet이란 Controller가 없을 때, jsp에서 jsp로 데이터를 전달할 때 사용한다.
- servlet을 Controller로 사용한다면 Attribute에 데이터를 저장하고 cos라이브러리를 사용해 ${AttributeName} 처럼 간단하게 사용할 수 있다
ajax요청 처리 순서
ajax 요청
$.ajax({
url:'projectBoardRead.do',
data: {"project_id":project_id},
dataType:'json',
success:function(data){
console.log("성공");
}
list를 Attribute에 넣어줌
forward.setRedirect(false);
forward.setPath("/jsp/module/schedule/calenderListJsonParse.jsp");
data를 json으로 변환
- java에서 해도 되지만 간편하게 하기위해 jsp 사용
- < html > 같은 태그는 전부 삭제해야 한다
- out.println도 사용하면 안된다(에러의 원인이 될 수도 있음)
- 반드시 하나의 list만 된다(Attribute를 두개 넣지 않는다)
- 왜냐하면 json은 서로 다른 데이터를 받으면 parsing 하지 못하기 때문이다
- json 변환을 해서 ajax 요청 성공 시 데이터를 간편하게 parsing할 수 있다
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="kosta.model.module.vo.ScheduleCalender"%>
<%@page import="kosta.model.module.vo.ScheduleCategory"%>
<%@page import="java.util.List"%>
<%@page import="net.sf.json.JSONArray"%>
<%@page import="java.util.ArrayList"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%!
List<ScheduleCategory> category_list;
List<ScheduleCalender> calender_list;
%>
<%
category_list = (List<ScheduleCategory>)request.getAttribute("categoryList");
//System.out.println("list: " + category_list.size());
//calender_list = (List<ScheduleCalender>)request.getAttribute("calenderList");
//out.println(category_list);
System.out.println(JSONArray.fromObject(category_list).toString());
out.println(JSONArray.fromObject(category_list).toString());
%>
json 데이터 출력
- 이미 json으로 변경했으므로 따로 json으로 변환할 필요 없음
- ajax 요청 성공 시 json으로 데이터 변경은 안되는지 궁금
if(false == data[i].isNull("category_id"))
console.log(data[i].category_id);
json 사용 시 필요한 라이브러리
- commons-beanutils.jar
- commons-collections-3.2.jar
- commons-lang-2.4.jar
- commons-logging-1.1.jar
- ezmorph-1.0.6.jar
- json-lib-2.3-jdk13.jar
mybatis error
2019-01-08 00:00:00 +0000Mybatis 에러 정리
Error registering typeAlias for ‘Board 에러
Error building SqlSession.
The error may exist in SQL Mapper Configuration
Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error registering typeAlias for 'Board'. Cause:
- MyBatis Config에 typeAliases에 선언된 class를 찾을 수 없다는 에러. 확인해보니 Config 에서 class명을 잘못적어서 수정하였다
부적합한 열 유형 1111 에러
g.apache.ibatis.exceptions.PersistenceException:
Error updating database. Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 부적합한 열 유형: 1111
- servlet에 넘어온 데이터가 NULL이었고 NULL 데이터를 사용하려고 해서 발생
invalid character 에러
Error updating database. Cause: java.sql.SQLSyntaxErrorException: ORA-00911: invalid character
The error may involve kosta.mapper.BoardMapper.insertBoard-Inline
The error occurred while setting parameters
SQL: insert into board values(board_seq.nextval, ?, ?, ?, sysdate, 0);
Cause: java.sql.SQLSyntaxErrorException: ORA-00911: invalid character
- db 쿼리문 끝에 세미콜론(;)을 붙임
The Network Adapter could not establish the connection
The error may exist in kosta/mapper/Board.xml
The error may involve kosta.mapper.BoardMapper.selectList
The error occurred while executing a query
Cause: java.sql.SQLException: Cannot create PoolableConnectionFactory (IO 오류: The Network Adapter could not establish the connection)
- 오라클 서비스가 꺼져있었다
mybatis 게시판 만들기 순서
2019-01-02 00:00:00 +0000게시판 만들기 정리
파일 작성순서
- xml 파일 작성
- ado 작성
- jsp 작성
게시물 삭제 추가하기
- 데이터 추가,삭제에 따라 태그명이 달라진다. 삭제 태그명은 delete이다
- xml에 id명(함수명), parameter, return 값을 생각하고 정의한다
- 태그의 id는 ado 함수명과 일치시켜야 한다
<delete id="deleteContents" parameterType="int">
delete from board where seq = #{seq}
</delete>
- mapperClass에 삭제 함수선언
int deleteContents(int seq);
- dao 삭제 함수 추가
public int deleteContents(int seq){
SqlSession sqlSession = getSqlSessionFactory().openSession();
int re = -1;
try{
re = sqlSession.getMapper(BoardMapper.class).deleteContents(seq);
if(re > 0){
sqlSession.commit();
}else{
sqlSession.rollback();
}
}catch(Exception e){
e.printStackTrace();
}finally{
sqlSession.close();
}
return re;
}
- jsp 수정. 삭제 링크를 누르면 게시물이 바로 삭제되도록 한다
- get방식으로 parameter를 전달한다
<td><a href="delete.jsp?seq=<%= board.getSeq() %>">삭제하기</a></td>
- 삭제링크 클릭 시 이동하는 delete.jsp 파일을 만든다
- dao 객체의 데이터 삭제 함수를 호출한다.
<%
int seq = Integer.parseInt(request.getParameter("seq"));
BoardDao2 dao = BoardDao2.getInstance();
int re = dao.deleteContents(seq);
if(re > 0)
out.println("삭제 성공");
else
out.println("삭제 실패");
%>
Java Jsp Mybatis Dynamic Query
2019-01-02 00:00:00 +0000동적쿼리
동적쿼리란?
- db 데이터를 crud할 때 조건이 변할 수 있다
- 제목으로 게시물 검색, 작성자이름으로 게시물 검색이 있을 때 조건이 제목, 작성자 이름 둘 중하나로 바뀐다
- 이 때 조건이 계속 바뀌므로 동적 쿼리를 사용해서 조회해야한다
- 아래 예제에서 foreach는 조건이 여러개일 때(ex 체크박스) 사용한다
- collection은 foreach로 돌때마다 선택되는 객체를 의미한다. area 객체 개수만큼 foreach문이 돈다
- item은 구분하기 위한 임의의 이름이다
- separator은 반복되는 사이에 출력할 구문이다
Source
<select id="listBoard" resultType="Board" parameterType="Search">
select * from board
<if test="area">
<where>
<!--( title LIKE %aa% OR writer LIKE %aa% )-->
<foreach collection="area" item="item222" separator="OR" open='(' close=')'>
<!-- $로해줘야한다 상수처럼 리터럴 상수처럼 사용되어야 한다. 변수가 되면 안되기 때문에 #->$ -->
${item222} LIKE #{searchKey}
</foreach>
</where>
</if>
</select>
mybatis
2019-01-01 00:00:00 +0000MyBatis
MyBatis란
- 프레임워크란 잘 짜여진 하나의 틀
- 일관성 있는 코드를 사용할 수 있다
- Low Level의 고민들을 개발자가 고민하지 않아도 된다(핵심 비즈니스 로직에 집중)
- jpa,hibernate
- db에 쉽게 접근하고 데이터를 쉽게 가져오기 위해 사용(jdbc)
- Row의 결과값을 가지고 자바 오브젝트를 매핑을 한다
Object Relational Mapping(ORM) Framework
- jpa, hibernate
- 각 테이블과 1:1 매칭관계
- 테이블과 테이블이 join되면 실제 자바 오브젝트도 join되어야 함
MyBatis 정보
- mybatis-config.xml 에 MyBatis의 모든 정보가 들어가 있음
- mybatis-config.xml에 있는 정보를 가져오고 sqlSession 정보를 뽑는다. 그리고 Mapping한 함수를 호출해서 query를 실행시킨다
Mapper방식
- 고유한 이름으로 메서드를 만드는 방식
- xml파일을 추가하고 각 함수에 따라 query문을 만든다. interface도 추가해서 함수를 정의한다
JSTL
- DB에서 조건문을 주지 않고 JSTL 문을 사용할 수 있다
MyBatis 라이브러리 추가
- myBatis download url
- mybatis-3.2.6.jar tomcat lib 폴더에 추가(프로젝트 폴더서 추가되었는지 확인할 것)
- jdbc lib 위치 : C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib
- oracle에 있는 jdbc lib를 tomcat lib 폴더에 넣는다
- ‘mybatis-config.xml’ 파일을 src 폴더 밑에 놓는다
Posts
Interceptor(인터셉터)
Android Studio Install
계층형 게시판
VirtualBox Ubuntu 18.04.2 LTS
TransactionAwareDataSourceProxy Error
Java Coding Conventions
Java Long과 long의 차이
Mybatis 객체 안에 객체 매핑
JavaConfig mariadb 연결
DataTable
관리자 페이지
MappingJackson2JsonView
Spring Javaconfig
게시판 만들기-제품 등록
게시판 만들기-제품 페이지 제작
게시판 만들기-회원탈퇴 및 게시판 삭제 플래그 추가
footer 하단에 고정시키기
bootstrap4 사용법
Spring 데이터 검증 @Valid, BindingResult
brackets 실시간 미리보기
Spring 기본설정(pom.xml, web.xml, encoding)
Vue.js computed, methods, watch
javascript onkeyup
Maria DB Incorrect string value Error
javascript 암호화(md5, base64)
Vue.js template
Vue.js 소개
Nexacro 설명
ControllerAdvice
Batch
html 페이지 로딩 순서
소수구하기(PrimeNumber)
최소공배수,최대공약수
Stream
Lambda(람다식)
inner class(내부 클래스)
final 키워드
file upload
파이썬 빅 데이터 K-평균(K-means)
아나콘다(Anaconda), 주피터 개발환경 세팅
텐서플로우(TensorFlow) 아키텍쳐 및 Session
텐서플로우(TensorFlow)상수, 변수, 함수
머신러닝 기초
한글 리스트 오름차순, 내림차순
연속된 글자의 갯수 출력
java spring5 프로젝트 설정
restController
spring 세팅 및 기본설정
mybatis trim
jquery datepicker
ajax로 데이터 전달/응답 받는법
mybatis error
mybatis 게시판 만들기 순서
Java Jsp Mybatis Dynamic Query
mybatis
git 소개
node.js 개발환경 구축
node.js 기본 내장 모듈
node.js의 전역 객체
node.js http module
node.js event
jdbc
자바빈
jsp, servlet 정리
java null object pattern
다음지도 key 등록(kakao map)
공공 데이터 open api
facebook login api
sourcetree 사용법
JavaScript event3
JavaScript jquery
JavaScript dom
JavaScript ajax
JavaScript 이벤트2
JavaScript 캡슐화
JavaScript Array,내장객체
JavaScript var
JavaScript 객체,생성자
JavaScript 함수,클로저
JavaScript Event
javascript eclipse 자동완성(with tern)
CSS position
HTML5,CSS 선택자
자바 시간 측정
git,eclipse 연동
HTML 기초 정리
Eclipse Web 환경세팅
피보나치의 수
Oracle 반복문,커서,예외,저장 서브프로그램
Oracle PL/SQL
Oracle 다중쿼리(Multiple row query)
Oracle 인덱스, 뷰, 시퀀스, 트랜잭션, 세션 정리
Oracle JOIN 정리
Oracle DDL, DML 정리
Oracle 문자열 함수 정리
Oracle 숫자,날짜,자료형 변환 함수 정리
Oracle 제약조건 정리
Oracle 기초 쿼리 정리
문제2775
DFS
junit
json
algorithmus basic
circular queue(원형큐)
binary search(이진탐색)
port forwarding(포트포워딩)
kakao chatbot(카카오 챗봇)
java io
sort comparable, comparator
Unresolved compilation problem
ArrayList, HashMap
Regular(정규표현식)
Enum Class
String Function
refactoring 이란(상수,제어플래그,assert)
reference,abstract 정리
FileNotFoundException Solve
static
Thread Synchronization(스레드동기화,원자성)
Java Exception(예외처리)
Java 생성자, this, super
roomnum
BeeHouse
Git Reset, Revert
Git Log
Array
stack
pyramid draw
Star Draw(별 그리기4)
Star Draw(별 그리기3)
Star Draw(별 그리기2)
Star Draw(별 그리기1)
Loop(While, For)
자바 데이터 타입, 데이터 연산
시계방향 달팽이 그리기
정수값의 짝수,홀수 갯수 구하기
java, Scanner 정리
draw dog
subscribe via RSS