인프런 커뮤니티 질문&답변

성장시켜주세요님의 프로필 이미지
성장시켜주세요

작성한 질문수

누구나 따라하면서 배우는 JSP 커뮤니티 게시판 만들기

글쓰기 기능 구현하기

글쓰기 버튼을 누르면 자꾸 글쓰기에 실패했습니다 라는 오류메세지가 떠요

작성

·

442

0

강사님이 실수한 수정사항을 다 고쳤는데도 데이터베이스 오류가 뜨네요.

저는 오라클을 써서 현재시간 구해오는 함수를

select sysdate from dual로 썻는데 여기 부분이 오류인가요?

오류를 못찾겠습니다 ㅠㅠ

package bbs;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

public class BbsDAO {

private Connection conn;

/private PreparedStatement pstmt; 데이터간 마찰이 일어나지 않도록 지워준다 /

private ResultSet rs;

public BbsDAO() {

try {

String dbURL = "jdbc:oracle:thin:@localhost:1521:orcl";

String driver = "oracle.jdbc.driver.OracleDriver";

String dbID = "scott";

String dbPassword = "tiger";

Class.forName(driver);

conn = DriverManager.getConnection(dbURL,dbID, dbPassword);

} catch(Exception e){

e.printStackTrace();

}

}

public String getDate() { //현제의 시간을 가져오는 메소드

String sql = "select sysdate from dual";

try {

PreparedStatement pstmt = conn.prepareStatement(sql);

rs = pstmt.executeQuery();

if(rs.next()) {

return rs.getString(1);

}

} catch (Exception e) {

e.getStackTrace();

}

return ""; //데이터베이스 오류를 알려줌

}

public int getNext() { //bbsID는 숫자이므로 내림차순해서 가져온다

String sql = "select bbsID from bbs order by bbsID desc";

try {

PreparedStatement pstmt = conn.prepareStatement(sql);

rs = pstmt.executeQuery();

if(rs.next()) {

return rs.getInt(1) + 1; // 나오는 결과에 1을 더해서 다음 번호를 가져온다

}

return 1; // 게시글이 하나도 없을때 1로 한다

} catch (Exception e) {

e.getStackTrace();

}

return -1; //데이터베이스 오류를 알려줌

}

public int write(String bbsTitle, String userID, String bbsContent) {

String sql = "insert into bbs values(?,?,?,?,?,?)";

try {

PreparedStatement pstmt = conn.prepareStatement(sql);

pstmt.setInt(1, getNext());

pstmt.setString(2, bbsTitle);

pstmt.setString(3, userID);

pstmt.setString(4, getDate());

pstmt.setString(5, bbsContent);

pstmt.setInt(6, 1);

return pstmt.executeUpdate();

} catch (Exception e) {

e.getStackTrace();

}

return -1; //데이터베이스 오류를 알려줌

}

}

답변 2

0

저도 똑같이 못하고있었는데 감사합니다 ㅎㅎ.. 큰도움이 됐습니다.

0

아 해결 됬네요ㅋㅋㅋㅋ 시간 구하는 sql문을

select to_char(sysdate,'yy-mm-dd') from dual 이라고 써야하네요 ㅋㅋㅋ

값을 String으로 받으니까 변환해서 받아요죠;;

성장시켜주세요님의 프로필 이미지
성장시켜주세요

작성한 질문수

질문하기