Connection con = ConnectionFactory.getConnection(); String sql = "INSERT INTO tableName " + "(column_a, column_b, column_c, column_d) " + "VALUES(?, ?, ?, ?)"; PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setInt(1, 123); pstmt.setInt(2, 456); pstmt.setInt(3, 789); pstmt.setString(4, "문자"); // 이 부분 에러!! pstmt.executeUpdate(sql); 해결책 → pstmt.executeUpdate(sql);을 pstmt.executeUpdate()..
에러를 따라가보니 ResultSet에서 getInt("column_c"); ← 이 부분에서 에러가 나고 있었다. 당연히 데이터 유형이 달라서 발생하는 에러이기 때문에 바로 데이터 유형을 확인해봤지만 해당 컬럼은 Int형이 분명했다. 도대체 어디가 잘못됐단 말인가.. 몇 시간을 디버깅 해보고 별 짓을 다 해보다가 지푸라기라도 잡는 심정으로 디버깅으로 나오는 쿼리문을 실행시켜 봤는데.. 그제서야 문제의 원인을 파악할 수 있었다. select column_a, column_b column_c, column_d, column_e from tableName ; 뭔가 이상하지 않나? 그렇다. column_b과 column_c 사이에 콤마가 빠져있었다. ㅡ.ㅡ 이걸 컴퓨터는 부적합한 열 인덱스라든가 부적합한 식별자 ..
남이 만들어놓은 것만 즐겨 쓰다가 막상 직접 만들으려니.. 재미도 있지만 머리도 아프다 ㅋㅋ 여러가지 방법이 있지만, 나는 DB에 테이블을 만들어서 가져오는 방식을 썼다. (쿠키를 이용하거나 일반 변수를 이용하는 방법 등등... 방법은 많다) 참고할 사람들은 참고하시라... 1. 테이블 생성 CREATE TABLE VISIT (V_DATE date); -- date타입으로 컬럼 하나. 클라이언트IP라든지 다른 정보들을 넣고 싶다면 컬럼을 더 추가해도 괜찮다. 2. DAO에서 쿼리문 작성or연결 INSERT INTO VISIT (V_DATE) VALUES (sysdate); -- 전체 방문자 수 증가 setVisitTotalCount() select count(*) from visit; -- 전체 방문자 ..
세션 리스너에 아래와 같이 적어줬더니 에러 발생. ServletContext session = (ServletContext) arg0.getSession(); ServletContext로 캐스팅 할 수 없댄다. 코드어시스트를 다시 받아서 HttpSession session = arg0.getSession(); 로 바꿔주니 잘 돌아감. 손으로 치지 말고 어시스트를 받자..;;