mysql 5

MySQL) 에러 Before start of result set

result set의 시작 전 오류. 이게 무슨말일까.. 하고 찾아보니 rs = pstmt.executeQuery(); topName = rs.getString(1); 위의 문장때문이었다. select 쿼리 결과가 ResultSet 형태로 반환되는데, select 쿼리 결과가 100%있을거라 생각하고 rs.next()를 삭제한 것이다. 하지만, select구문이 제대로 실행안될 수도 있고, resultSet은 cusor point를 반드시 다음으로 옮겨야 데이터를 읽어올 수 있다. 따라서 rs.next() 함수가 빠졌으면 적어야한다. rs = pstmt.executeQuery(); if(rs.next()) { topName = rs.getString(1); }

Database/MySQL 2022.04.08

MySQL) 외래키를 걸었는데, 제약조건이 따라온 경우 문제해결.

User 테이블에 userid 컬럼이 있고, 이 컬럼에는 not null과 unique 제약조건을 걸었다. Notice 테이블에 userid컬럼이 있고, User테이블의 userid와 외래키를 걸었다. 그런데.... 외래키를 걸었더니 User테이블의 userid제약조건인 nn과 unique를 그대로 들고와서 걸렸다. 게시판에는 한 유저가 많은 글을 쓸 수 있어야 하는데 unique가 걸려서 한 유저당, 하나의 글밖에 못쓰는 상황이 된 것이다. 따라서 위의 사진에서 unique에 체크 표시를 풀고 Apply버튼을 눌렀지만 승인되지 않았다.. 구글링을 해도 Foreign key와 unique관계를 뚜렸하게 설명하는 글을 찾기 힘들었다. MySQL을 배운지 얼마되지 않아서 봐도 이해를 못한것일 수도..ㅎㅎ 외..

Database/MySQL 2022.03.24

MySQL) MySQL varchar 한글 글자 수? 바이트? 알아보기

MySQL 버전에 따라 varchar 데이터 타입을 지정할때 괄호()안에 제한을 바이트 단위로 계산해야하는지, 한글 한글자로 계산해야되는지 헷갈렸다. 구글링 해보니 MySQL 4.1버전부터 byte단위가 아닌 character 단위로 바뀌었다는 말이 있는데 혹시 몰라 확실히 하기 위해 직접 테이블을 생성해서 확인해봤다. 나는 현재 8.0버전을 사용중이다! 임시 테이블 생성하기 한글 확인만을 위한거니 name컬럼 하나만ㅎㅎ.. create table temp ( name varchar(3) null ); 값 넣어보기 insert into temp(name) values('가나다'); insert into temp(name) values('가나다라'); varchar(3) 으로 지정했는데 '가나다'는 잘 들..

Database/MySQL 2022.03.24

JSP) DB 커넥션 풀(Connection Pool)

1. 커넥션 풀 JDBC를 통해 DB와 연결할때 DriveManager클래스의 getConnection()메서드를 통해 연결 정보 객체(Conection)을 가져와서 사용한다. 이 Connection을 매번 가져오는게 아니고, 미리 가져와서 저장하여 필요할때 가져가서 쓰고 작업이 끝아면 반환하며 사용할때 사용하는게 커넥션 풀이다. 즉, 커넥션 풀은 커넥션 정보를 저장하는 것을 의미한다. DB환경설정과 연결정보 등을 xml이나 속성관리 파일에 정의해두고 그 정보를 사용한다. 웹을 만들때 커넥션 풀 사용은 필수다. 안쓰면 서버 무조건 나간다..ㅎㅎ 2. 커넥션 풀 사용 이유 사용자가 웹 사이트를 요청할때마다 Connection객체를 새로 만들면 메모리 소모가 많아 매우 비효율적이다. 커넥션 풀을 생성해서 그..

Back-end/JSP 2022.03.14

JSP) JDBC 설치하여 JSP와 DB연결 및 SQL문 실행하기

JDBC 자바와 DBMS를 연결시켜주는 API. SQL프롬프트를 사용하지 않고 자바 프로그램에서 SQL문을 써서 DB작업을 할 수 있도록 한다. DBMS종류에 맞는 JDBC드라이버를 설치해서 사용한다. 1. JDBC 드라이버 다운받아 설치하기. 나는 MySQL을 사용하므로 MySQL JDBC인 Connector j 를 설치해야한다. (자바프로그램에서 MySQL을 사용하려면 Connector j 필요) 전체 설치가 아닌 jar파일만 필요하므로 Microsoft Window가 아닌, Platform Independent 를 선택한다. 윈도우 환경이면 .zip을 다운받고, 그 외에는 .tar를 다운받는다. https://dev.mysql.com/downloads/connector/j/ 다운받은 폴더안의 .ja..

Back-end/JSP 2022.03.03
반응형