ch13
RegisterBean
package ch13;
public class RegisterBean {
private String id;
private String pwd;
private String name;
private String num1;
private String num2;
private String email;
private String phone;
private String zipcode;
private String address;
private String job;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNum1() {
return num1;
}
public void setNum1(String num1) {
this.num1 = num1;
}
public String getNum2() {
return num2;
}
public void setNum2(String num2) {
this.num2 = num2;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getZipcode() {
return zipcode;
}
public void setZipcode(String zipcode) {
this.zipcode = zipcode;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
}
RegisterDao
package ch13;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;
public class RegisterDao {
private final String JDBC_DRIVER ="com.mysql.cj.jdbc.Driver";
private final String JDB_URL ="jdbc:mysql://localhost:3306/shopdb?serverTimezone=Asia/Seoul&characterEncoding=UTF-8";
private final String USER ="root";
private final String PASS ="asd1234";
public RegisterDao() {
try {
Class.forName(JDBC_DRIVER);
} catch (Exception e) {
System.out.println("Error : JDBC 드라이버 로딩 실패");
}
}
//메서드 회원정보 리스트를 가져오는 기능
public Vector<RegisterBean> getRegisterList(){
Connection connection = null;
Statement stmt = null;
ResultSet rs = null;
Vector<RegisterBean> vList = new Vector <RegisterBean>();
try {
connection = DriverManager.getConnection(JDB_URL, USER, PASS);
stmt = connection.createStatement();
rs = stmt.executeQuery("select * from tblregister");
while(rs.next()) {
RegisterBean bean = new RegisterBean();
bean.setId(rs.getString("id"));
bean.setPwd(rs.getString("pwd"));
bean.setName(rs.getString("name"));
bean.setNum1(rs.getString("num1"));
bean.setNum2(rs.getString("num2"));
bean.setEmail(rs.getString("email"));
bean.setPhone(rs.getString("phone"));
bean.setZipcode(rs.getString("zipcode"));
bean.setAddress(rs.getString("address"));
bean.setJob(rs.getString("job"));
vList.addElement(bean);
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
if(rs != null) {
try {
rs.close();
} catch (Exception e) {
// TODO: handle exception
}
}
if(stmt != null) {
try {
stmt.close();
} catch (Exception e) {
// TODO: handle exception
}
}
if(connection != null) {
try {
connection.close();
} catch (Exception e) {
// TODO: handle exception
}
}
}
return vList;
}
}
DriverTest
package com.company.aboutking.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DriverTest {
public static void main(String[] args) {
Connection connection;
String url =
"jdbc:mysql://localhost:3306/shopdb?serverTimezone=Asia/Seoul&characterEncoding=UTF-8";
String userId = "root";
String pwd = "asd1234";
try {
//동적 바인딩을 위한 자바 기술
//컴파일 시점에 문자열로 저장을 해 두고 런타임 시점에 객체로 만들어 버리는 기술
//mySQL JDBC Driver 이름입니다. (오라클, MSSQL)
Class.forName("com.mysql.cj.jdbc.Driver"); // 지금 단계에서는 외울 것
connection = DriverManager.getConnection(url, userId, pwd);
System.out.println("Success~~~");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
order_list
JDBC란
데이터 베이스를 다루기 위한 자바 API(Application programming Interface)
-> 자바 기반으로 프로그램을 작성할 때 개발자에게 데이터베이스를 쉽게 다룰 수 있도록 해주는 것
DBMS-> 마리아 DB, mySQL...을 간편화하기 위해 만들어진 것
: 그래서 하나의 도구를 만들어 놓고 개발자는 도구만 사용하면 각각의 DBMS 내부까지 신경을 쓰지 않고
어떤 DBMS든 쉽게 사용할 수 있게 한다.(리모콘)
JDBC 구성
JDBC 인터페이스 + JDBC 드라이버
인터페이스
자료구조 set , map , list
ㄴadd
ㄴremove
1. JDBC Driver 설치(MYSQL)
2. 연동 테스트
3. usingJDBC.jsp
JDBC를 통한 데이터 베이스 연결 핵심 단계
1. JDBC 드라이버의 인스턴스 생성
--> Class.forName("Driver_name");
2. JDBC 드라이버 인스턴스를 통해 DBMS에 대한 연결 매니저 생성
--> Connection con = DriverManager.getConnection("DBURL", "AccountID", "PWD");
3. Statement 생성
--> Statement stmt = con.createStatement();
4. 쿼리문 실행 / ResultSet으로 결과 받음
--> ResultSet rs = stmt.executeQuery("select*from tbl where id = 1");
5. ResultSet 해지
--> rs.close();
6. Statement 해지
--> stmt.close();
7. 데이터베이스와 연결 해지
--> con.close();
usingJDBC.jsp
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.Connection" %>
<%@page import="java.sql.Statement" %>
<%@page import="java.sql.ResultSet" %>
<%@page import="java.util.*" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/shopdb?serverTimezone=Asia/Seoul&characterEncoding=UTF-8";
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String id="",
pwd="",
name="",
num1 = "",
num2 = "",
email = "",
phone="",
zipcode="",
address="",
job="";
int counter = 0;
try{
conn = DriverManager.getConnection(url,"root","asd1234");
stmt = conn.createStatement();
rs = stmt.executeQuery("select*from tblregister");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP에서 데이터베이스 연동</title>
</head>
<body bgcolor="#ffffcc">
<h2>JSP 스크립트릿에서 데이터베이스 연동 예제</h2>
<h3>회원정보</h3>
<table bordercolor="#0000ff" border="1">
<tr>
<td><strong>ID</strong></td>
<td><strong>PWD</strong></td>
<td><strong>NAME</strong></td>
<td><strong>NUM1</strong></td>
<td><strong>NUM2</strong></td>
<td><strong>EMAIL</strong></td>
<td><strong>PHONE</strong></td>
<td><strong>ZIPCODE/ADDRESS</strong></td>
<td><strong>JOB</strong></td>
</tr>
<%
if (rs != null){
while(rs.next()){
id = rs.getString("id");
pwd = rs.getString("pwd");
name = rs.getString("name");
num1 = rs.getString("num1");
num2 = rs.getString("num2");
email = rs.getString("email");
phone = rs.getString("phone");
zipcode = rs.getString("zipcode");
address = rs.getString("address");
job = rs.getString("job");
counter++;
%>
<tr>
<td><%=id %></td>
<td><%=pwd %></td>
<td><%=name %></td>
<td><%=num1 %></td>
<td><%=num2 %></td>
<td><%=email %></td>
<td><%=phone %></td>
<td><%= zipcode %>/<%= address %></td>
<td><%=job %></td>
</tr>
<%
} //end of while
}// end of if
%>
</table>
total records : <%=counter%>
<br/>
<%
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}finally{
if(rs != null){
rs.close();
}
if(stmt != null){
stmt.close();
}
if(conn != null){
conn.close();
}
}
%>
</body>
</html>
ch14
order_list
자바 빈즈를 이용한 데이터 베이스 연동
1. RegisterBean.java
2. RegisterDao.java --> 패키지 생성
연습
1. MemberBean.java
2. MemberDao.java
3. member.jsp
1. MemberBean.java
package ch14;
public class MemberBean {
private String id;
private String pwd;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
2. MemberDao.java
package ch14;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;
import ch13.RegisterBean;
public class MemberDao {
private final String JDBC_DRIVER="com.mysql.cj.jdbc.Driver";
private final String JDB_URL ="jdbc:mysql://localhost:3306/shopdb?serverTimezone=Asia/Seoul&characterEncoding=UTF-8";
private final String USER = "root";
private final String PASS = "asd1234";
public MemberDao() {
try {
Class.forName(JDBC_DRIVER);
} catch (Exception e) {
System.out.println("Error : JDBC 드라이버 로딩 실패");
}
}
//메서드 회원 정보 리스트를 가져오는 기능
public Vector<RegisterBean> geRegisterBeans(){
Connection connection = null;
Statement stmt = null;
ResultSet rs = null;
Vector<RegisterBean> vlist = new Vector<RegisterBean>();
try {
connection = DriverManager.getConnection(JDB_URL, USER, PASS);
stmt = connection.createStatement();
rs = stmt.executeQuery("select * from tblregister");
RegisterBean bean = new RegisterBean();
bean.setId(rs.getString("id"));
bean.setPwd(rs.getString("pwd"));
bean.setName(rs.getString("name"));
vlist.addElement(bean);
} catch (SQLException e) {
e.printStackTrace();
}finally {
if(rs != null) {
try {
rs.close();
} catch (Exception e) {
// TODO: handle exception
}
}
if(stmt != null) {
try {
stmt.close();
} catch (Exception e) {
// TODO: handle exception
}
}
if(connection != null) {
try {
connection.close();
} catch (Exception e) {
// TODO: handle exception
}
}
}
return vlist;
}
}
3. member.jsp
<%@page import="ch13.RegisterBean"%>
<%@page import="java.util.Vector"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:useBean id="regDao" class="ch13.RegisterDao"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body bgcolor="#ffffcc">
<h2>Bean을 사용한 데이터베이스 연동 예제</h2>
<h3>회원정보</h3>
<table bordercolor="#0000ff" border="1">
<tr>
<td><strong>ID</strong></td>
<td><strong>PWD</strong></td>
<td><strong>NAME</strong></td>
<td><strong>NUM1</strong></td>
<td><strong>NUM2</strong></td>
<td><strong>EMAIL</strong></td>
<td><strong>PHONE</strong></td>
<td><strong>ZIPCODE/ADDRESS</strong></td>
<td><strong>JOB</strong></td>
</tr>
<%
Vector<RegisterBean> vlist = regDao.getRegisterList();
int counter = vlist.size();
System.out.print(counter);
for(int i =0; i < vlist.size(); i++) {
RegisterBean bean = vlist.get(i);
%>
<tr>
<td><%=vlist.get(i).getId() %></td>
<td><%=bean.getPwd()%></td>
<td><%=bean.getName() %></td>
<td><%=bean.getNum1() %></td>
<td><%=bean.getNum2() %></td>
<td><%=bean.getEmail() %></td>
<td><%=bean.getPhone() %></td>
<td><%=bean.getZipcode()%> / <%= bean.getAddress() %></td>
<td><%=bean.getJob() %></td>
</tr>
<%} %>
</table>
<br/>
</body>
</html>
ch15
order_list
세션과 쿠키
차이점 : 여러분들 컴퓨터에 저장되는 서버 측 정보가 쿠키입니다.
네이버 로그인 시 (아이디 저장, 자동 로그인)
cookCookie.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String cookieName = "myCookie";
Cookie cookie = new Cookie(cookieName, "Apple");
cookie.setMaxAge(60); //60초동안 쿠키를 저장시켜 놓겠다.
response.addCookie(cookie);
%>
<h1>Example Cookie</h1>
쿠키를 만듭니다. <br/>
쿠키 내용은 <a href="tasteCookie.jsp">여기로!!!!!</a>
</body>
</html>
tasteCookie.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>쿠키 확인 하기</h1>
<%
Cookie[] cookies = request.getCookies();
if(cookies != null){
for(int i = 0; i < cookies.length; i++){
if(cookies[i].getName().equals("myCookie")){
System.out.print("쿠키 이름 : " + cookies[i].getName());
System.out.print("쿠키 값 : " + cookies[i].getValue());
}
}
}
%>
</body>
</html>
a14_인터페이스
Interface
package a14_interface;
public class Interface {
public static void main(String[] args) {
Switch a = new kitchen_switch();
Switch b = new livingRoom_switch();
a.on();
a.off();
b.on();
b.off();
}
}
kitchen_switch
package a14_interface;
public class kitchen_switch implements Switch {
@Override
public void on() {
System.out.println("주방 불을 켭니다.");
}
@Override
public void off() {
System.out.println("주방 불을 끕니다.");
}
}
livingRoom_switch
package a14_interface;
public class livingRoom_switch implements Switch {
@Override
public void on() {
System.out.println("거실 불을 켭니다.");
}
@Override
public void off() {
System.out.println("거실 불을 끕니다.");
}
}
Switch
package a14_interface;
public interface Switch {
public void on();
public void off();
}
a14_인터페이스2
package a14_인터페이스2;
import java.util.Scanner;
public class Main {
private Scanner scanner;
private UserService userService;
public Main(Scanner scanner, UserService userService) {
this.scanner = scanner;
this.userService = userService;
}
public Main(Scanner scanner2) {
// TODO Auto-generated constructor stub
}
public void showMainMenu( ) {
System.out.println("사용자 관리 프로그램");
System.out.println("1. 사용자 추가");
System.out.println("2. 사용자 조회");
System.out.println("3. 사용자 수정");
System.out.println("4. 사용자 삭제");
}
public int inputSelect() {
System.out.println("명령을 선택해주세요: ");
int select = scanner.nextInt();
scanner.nextInt();
return select;
}
public boolean mainLogic(int select) {
boolean flag = true;
if(select == 1) {
System.out.println("사용자 추가");
userService.insertUser();
} else if(select == 2) {
System.out.println("사용자 조회");
userService.getUser();
} else if(select == 3) {
System.out.println("사용자 수정");
userService.updaterUser();
} else if(select == 4) {
System.out.println("사용자 삭제");
userService.deleteUser();
} else if(select == 0) {
System.out.println("프로그램 종료중...");
flag = false;
} else {
System.out.println("잘못된 명령입니다.");
}
return flag;
}
public void mainLoop( ) {
// while() {}
}
public static void main(String[] args) {
UserService userService = new UserServiceImplV01();
Main main = new Main(new Scanner(System.in));
}
}
UserService.java
package a14_인터페이스2;
public interface UserService {
/*
* CRUD
* C : Create 조회
* R: Read 조회
* U: Update 수정
* D: Delete 삭제
*
*/
public void insertUser();
public void getUser();
public void updaterUser();
public void deleteUser();
}
UserServiceImplV01.java
package a14_인터페이스2;
public class UserServiceImplV01 implements UserService {
@Override
public void insertUser() {
System.out.println("사용자를 추가합니다.");
}
@Override
public void getUser() {
System.out.println("사용자 정보를 가져옵니다.");
}
@Override
public void updaterUser() {
System.out.println("사용자 정보를 수정합니다.");
}
@Override
public void deleteUser() {
System.out.println("사용자 정보를 삭제합니다.");
}
}
UserServicelmplV2.java
package a14_인터페이스2;
public class UserServicelmplV2 implements UserService {
@Override
public void insertUser() {
}
@Override
public void getUser() {
}
@Override
public void updaterUser() {
}
@Override
public void deleteUser() {
}
}
'코리아 IT아카데미 > grid·flex·mySql·jsp' 카테고리의 다른 글
17일차 | jsp2 (0) | 2021.12.09 |
---|---|
18일차 | jsp3 (0) | 2021.12.09 |
16일차 | jsp1 (0) | 2021.12.06 |
15일차 | jquery, http/서버 개념, postman으로 확인 (0) | 2021.12.03 |
14일차 | json 파일 만들기, 프로그램 설치, 다이나믹 웹 프로젝트 만들기 (0) | 2021.12.02 |