controller 클래스
public void selectList() {
ArrayList<Member> list = new MemberService().selectList();
if (list.isEmpty()) {
new MemberMenu().displayNoData("전체 조회 결과가 없음!");
} else {
new MemberMenu().displayMemberList(list);
}
}
ArrayList<Member> list = new MemberService().selectList();
ArrayList<Member> 참조 변수 list를 생성을 하고
생성자로 MemberService().selectList()로 생성을 한다
이는 list 안에 데이터가 없다면 displayNoData() 메소드에
"전체 조회 결과가 없음"을 반환을 해주기 위함이다
반대로 list안에 조회할 데이터가 있다면 list를 출력해준다
list를 출력을 해도 toSting이 오버라이딩이 되어있으므로
정상적으로 조회가 가능하다
MemberService 클래스 :
public ArrayList<Member> selectList(){
Connection conn = JDBCTemplate.getConnection();
ArrayList<Member> list = new MemberDao().selectList(conn);
JDBCTemplate.close(conn);
return list;
}
JDBCTemplate 클래스의
getConnection 메소드
1)
Connection 객체를 생성해준다
try문 밖에다가 생성을 해주므로 변수 스코프를 늘릴 수 있다
try문 밖에다가 null로 Connection 객체를 초기화 시켜준다
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
// Class.forname()메서드를 사용하여 런타임에 클래스를 동적으로 로드
// OracleDriver가 클래스가 로드되면 이 클래스는 자체적으로 DriverManager에
// 등록이 된다.
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe"
,"C##JDBC"
,"JDBC");
// DriverManager 드라이버 목록을 유지하며
// 목록을 사용하여 데이터베이스 연결
conn.setAutoCommit(false);
// 기본적으로 자동관리이므로 수동관리를 위하여 꺼 둠
}catch(ClassNotFoundException e) {
e.printStackTrace();
}catch(SQLException e) {
e.printStackTrace();
}
return conn;
}
Class.forname()에 동적으로 저장된
OracleDriver 클래스를 저장이 되면 클래스는 자체적으로
DriverManager에 등록이된다
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe"
,"C##JDBC"
,"JDBC");
DriverManager에 등록된
OracleDriver 클래스를
getConnection메소드를 통해서
연결을 시켜준다
JDBC는 일반적으로 자동관리이므로
수동관리를 위하여
setAutoCommit(false);를 적용 시켜서
수동관리로 전환을 시킨다
MemberDAO 클래스 :
public ArrayList<Member> selectList(Connection conn){
ArrayList<Member>list = new ArrayList<Member>();
PreparedStatement pstmt = null;
ResultSet rset = null;
//---
String sql = "SELECT * FROM MEMBER ";
try {
pstmt = conn.prepareStatement(sql);
rset = pstmt.executeQuery();
while(rset.next()) {
Member m = new Member(
rset.getInt("USERNO"),
rset.getString("USERID"),
rset.getString("USERPW"),
rset.getString("USERNAME"),
rset.getString("GENDER"),
rset.getInt("AGE"),
rset.getString("EMAIL"),
rset.getString("ADDRESS"),
rset.getString("PHONE"),
rset.getString("HOBBY"),
rset.getDate("ENROLLDATE")
);
list.add(m);
}
}catch(SQLException e) {
e.printStackTrace();
}finally {
JDBCTemplate.close(rset);
JDBCTemplate.close(pstmt);
}
return list;
}
결과 내용을 반환해줄
Member 매개변수타입 ArrayList 객체를 인스턴스화를 한다
1) : ArrayList 객체 생성과 PreparedStatement 객체 생성
ArrayList<Member>list = new ArrayList<Member>();
PreparedStatement 객체를 생성하고
ResultSet 객체를 생성한다.
PreparedStatement pstmt = null;
ResultSet rset = null;
조회를 위한 쿼리문을 작성을 한다
String sql = "SELECT * FROM MEMBER ";
ResultSet은 SELECT문의 결과를 저장하는 객체이다
selectLIst() 메소드는 조회를 위한 메소드이므로
ResultSet 객체도 생성을 해주어야 한다
'ORACLE SQL' 카테고리의 다른 글
CSS 기본적인 것들과 자주 사용되는 것들 (0) | 2024.08.06 |
---|---|
HTML5 : 기초 글자태그, (0) | 2024.08.05 |
ORACLE 사용자 계정 설정 및 DDL과 DML 차이점 (1) | 2024.08.03 |
ORACLE SQL HAVING과 WHERE의 차이점 (1) | 2024.08.02 |
SQL 아침 복습 자료 문제 풀이_2 (0) | 2024.08.01 |