개발환경 : Oracle 11g, Eclipse(jsp), Apache-Tomcat 8.5, centOS7
BbsDAO.java
package bbs;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
public class BbsDAO {
private Connection conn;
private ResultSet rs;
public BbsDAO() {
try {
String dbURL = "jdbc:oracle:thin:@localhost:1521:xe";
String dbID = "jsw";
String dbPassword = "jsw";
Class.forName("oracle.jdbc.OracleDriver");
conn = DriverManager.getConnection(dbURL,dbID,dbPassword);
}catch (Exception e) {
e.printStackTrace();
}
}
public String getDate() {
String SQL = "SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD-hh24:mi:ss') FROM DUAL";
try {
PreparedStatement pstmt = conn.prepareStatement(SQL);
rs = pstmt.executeQuery();
if(rs.next()) {
return rs.getString(1);
}
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
public int getNext() {
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;
}
return 1;
} catch (Exception e) {
e.printStackTrace();
}
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.printStackTrace();
}
return -1;
}
public ArrayList<Bbs> getList(int pageNumber){
String SQL = "select * from ( select row_number() over (order by bbsDate desc) NUM, A.* from bbs A where bbsavailable=1 order by bbsDate desc) where NUM between ? and ?";
ArrayList<Bbs> list = new ArrayList<Bbs>();
try {
PreparedStatement pstmt = conn.prepareStatement(SQL);
pstmt.setInt(1, (pageNumber -1)*10+1);
System.out.println("no.1 is "+ ((pageNumber -1)*10+1));
if(getNext()>pageNumber*10) {
pstmt.setInt(2, pageNumber*10);
System.out.println("no.2 is if"+ ((pageNumber)*10));
} else {
pstmt.setInt(2, getNext());
System.out.println("no.2 is else "+ getNext());
}
System.out.println(" resultset_before ");
rs = pstmt.executeQuery();
System.out.println(" resultset_after ");
while(rs.next()) {
System.out.println(" resultset_while");
Bbs bbs = new Bbs();
bbs.setBbsID(rs.getInt(2));
bbs.setBbsTitle(rs.getString(3));
bbs.setUserID(rs.getString(4));
bbs.setBbsDate(rs.getString(5));
bbs.setBbsContent(rs.getString(6));
bbs.setBbsAvailable(rs.getInt(7));
list.add(bbs);
}
}catch(Exception e) {
System.out.println("Exception");
e.printStackTrace();
}
System.out.println(" resultset_return list");
return list;
}
public boolean nextPage(int pageNumber) {
try {
if(getNext()>(pageNumber-1)*10) {
System.out.println("nextpage");
return true;
} else {
return false;
}
}catch(Exception e) {
e.printStackTrace();
}
return false;
}
public Bbs getBbs(int bbsID) {
String SQL = "SELECT * FROM bbs WHERE bbsID = ?";
try {
PreparedStatement pstmt = conn.prepareStatement(SQL);
pstmt.setInt(1, bbsID);
rs = pstmt.executeQuery();
if(rs.next()) {
Bbs bbs = new Bbs();
bbs.setBbsID(rs.getInt(1));
bbs.setBbsTitle(rs.getString(2));
bbs.setUserID(rs.getString(3));
bbs.setBbsDate(rs.getString(4));
bbs.setBbsContent(rs.getString(5));
bbs.setBbsAvailable(rs.getInt(6));
return bbs;
}
}catch(Exception e) {
e.printStackTrace();
}
return null;
}
public int update(int bbsID, String bbsTitle, String bbsContent) {
Bbs bbs = getBbs(bbsID);
String SQL = "UPDATE BBS SET bbsTitle = ?, bbsContent = ? WHERE bbsID = ?";
try {
PreparedStatement pstmt = conn.prepareStatement(SQL);
pstmt.setString(1, bbsTitle);
pstmt.setString(2, bbsContent);
pstmt.setInt(3, bbsID);
return pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
return -1;
}
public int delete(int bbsID) {
String SQL = "UPDATE BBS SET bbsAvailable = 0 WHERE bbsID = ?";
System.out.println("여기 동작하나"+bbsID);
try {
PreparedStatement pstmt = conn.prepareStatement(SQL);
pstmt.setInt(1, bbsID);
return pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
return -1;
}
}
UserDAO.java
package user;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class UserDAO {
private Connection conn;
private PreparedStatement pstmt;
private ResultSet rs;
public UserDAO() {
try {
String dbURL = "jdbc:oracle:thin:@localhost:1521:xe";
String dbID = "jsw";
String dbPassword = "jsw";
Class.forName("oracle.jdbc.OracleDriver");
conn = DriverManager.getConnection(dbURL,dbID,dbPassword);
}catch (Exception e) {
e.printStackTrace();
}
}
public int login(String userID, String userPassword) {
String SQL = "SELECT userPassword FROM user_bbs WHERE userID = ?";
try {
pstmt = conn.prepareStatement(SQL);
pstmt.setString(1, userID);
rs = pstmt.executeQuery();
if(rs.next()) {
if(rs.getString(1).contentEquals(userPassword)) {
return 1;
}
else
return 0;
}
return -1;
} catch (Exception e) {
e.printStackTrace();
}
return -2;
}
public int join(User user) {
String SQL = "INSERT INTO user_bbs VALUES( ?, ?, ?, ?, ?)";
try {
pstmt = conn.prepareStatement(SQL);
pstmt.setString(1, user.getUserID());
pstmt.setString(2, user.getUserPassword());
pstmt.setString(3, user.getUserName());
pstmt.setString(4, user.getUserGender());
pstmt.setString(5, user.getUserEmail());
System.out.println("join here : "+user.getUserID());
return pstmt.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}
return -1;
}
}