작성
·
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; //데이터베이스 오류를 알려줌
}
}