1) getConnection(url, user, password)
Connection conn = null;
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "jsp";
String password = "jsp";
Class.forName(driver);
conn = DriverManager.getConnection(url, user, password);
2) preparedstatement();
String sql = "select color from car where carnum=?";
// 쿼리문 날리기
PreparedStatement pstm = conn.prepareStatement(sql);
// 답 받기
pstm.setString(인덱스, 값);
pstm.setInt(인덱스, 값);
3) executeUpdate()
int check = pstm.executeUpdate();
4) executeQuery()
ResultSet rs = pstm.executeQuery();
select 쿼리 실행 시 executeQuery() 메서드를 사용하여, 실행 결과로 java.sql.ResultSet 형으로 리턴
ResultSet 메서드
- next() : resultset내에서 커서를 하나씩 옮김
- rs.next(); 데이터가 있는지 없는 지 한줄씩 찾아줌
getInt(int columnIndex) : columnIndex 번째 컬럼의 값을 가지고 온다
getString(String columnName) : columnName값을 가지고 온다
while( rs.next() ){ .... }
rs.getInt(1);
rs.getString("BRAND")
💡 예시
public class MemberBean {
// 멤버변수 (필드)
private String name;
private int age;
// 메서드 (getter, setter)
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
1) 객체 생성
MemberBean member = new MemberBean();
<jsp:userBean class="패키지명.MemberBean" id="member">
2) setter()
member.setName("자바학생");
<jsp:setProperty name="member" property="name" value="자바학생">
3) getter()
member.getName();
<jsp:getProperty name="member" property="name" />
💡 예시
① 폼 만들기 => .jsp
<body>
<form action="age_db.jsp">
<label>이름
<input type="text" name="name" /><br>
</label>
<input type="submit" value="검색" />
</form>
<input type="button" value="전체확인하기" onclick="selectAll();" />
<script>
function selectAll(){
location.href = "age_all.jsp";
}
</script>
</body>
② db select 메서드 만들기 => .java
📌 이름 검색하며 나이 나오는 메서드
public class MemberDao {
Connection conn;
PreparedStatement pstm;
ResultSet rs;
public int getAge(String name) {
String sql = "SELECT age FROM MEMBER WHERE name = ?";
int age = 0;
try {
Connection conn = DBConnection.getConnection();
PreparedStatement pstm = conn.prepareStatement(sql);
pstm.setString(1, name);
ResultSet rs = pstm.executeQuery();
if(rs.next()) {
age = rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}
return age;
}
📌 ArrayList를 이용해 자바빈즈 객체 담기
public ArrayList<MemberBean> selectAll(){
String sql = "SELECT * FROM MEMBER";
ArrayList<MemberBean> result = new ArrayList();
try {
Connection conn = DBConnection.getConnection();
PreparedStatement pstm = conn.prepareStatement(sql);
ResultSet rs = pstm.executeQuery();
while(rs.next()) {
// rs 레코드당 하나의 MemberBean 생성
MemberBean member = new MemberBean();
// 결과를 Bean에 저장
member.setName(rs.getString(1));
member.setAge(rs.getInt(2));
// Bean을 ArrayList에 add
result.add(member);
}
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
}
③ form action="age_db.jsp"
-> 나이에 대한 정보 요청
<body>
<%
//search의 검색어 넘겨 받기
String name = request.getParameter("name");
// MemberDao 클래스 가져오기
MemberDao mdao = new MemberDao();
// mdao의 getAge메서드에 search의 검색어 입력
int age = mdao.getAge(name);
%>
<% if(age != 0){ %>
이름 : <%= name %><br>
나이 : <%= age %><br>
<% } else { %>
찾는 이름이 없습니다.
<% } %>
<input type="button" value="다시 검색하기" onclick="location.href='age_search.jsp'">
</body>
④ location.href = "age_all.jsp"
<body>
<jsp:useBean id="mdao" class="com.codingbox.dao.MemberDao" />
<% ArrayList<MemberBean> result = mdao.selectAll(); %>
<!-- result 객체 하나에 name, age 담겨있고 이 객체가 arrayList로 -->
<table border="1">
<tr>
<th>이름</th>
<th>나이</th>
</tr>
<tr>
<% for(MemberBean member : result) {%>
<!-- for문은 result가 끝날 때까지 돌릴 거고 Member bean에하나하나를 담을 거야 -->
<!-- 사이즈는 알필요 없고 끝날 떄까지 -->
<th><%=member.getName() %></th>
<th><%=member.getAge() %></th>
</tr>
<%} %>
</table>
<input type="button" value="다시 검색하기" onclick="location.href='age_search.jsp'">
</body>
👍 결과