[ 설 명 ] 사용 할 프로젝트 우클릭 > New > Folder 클릭합니다.


[ 설 명 ] 폴더이름은 lib 으로 설정하고 Finish 클릭합니다.


[ 설 명 ] ojdbc.jar 파일을 복사합니다.


[ 설 명 ] 생성한 lib 폴더에 붙여넣기 합니다.


[ 설 명 ] 프로젝트 우클릭 > Properties 클릭합니다.


[ 설 명 ] 좌측에서 Java Build Path 선택 > Libraries 탭 선택 > Add Library 클릭합니다.


[ 설 명 ] User Library 선택 > Next 클릭합니다.


[ 설 명 ] User Libraries.. 클릭합니다.


[ 설 명 ] New 클릭합니다.


[ 설 명 ] 알아보기 쉽게 이름을 설정합니다.


[ 설 명 ] ojdbc 선택 > Add JARs ... 클릭합니다.


[ 설 명 ] 아까 생성한 lib 폴더아래에 ojdbc.jar 파일을 선택합니다.


[ 설 명 ] OK 클릭합니다.


[ 설 명 ] Finish  클릭합니다.


[ 설 명 ] OK 클릭합니다.


[ 설 명 ] 프로젝트에 정상적으로 추가된 화면입니다.

// MemberDAO 클래스

// JDBC 사용 방법
// 1. JDBC 드라이버 로드 : Class.forName(oracle.jdbc.driver.OracleDriver);
// 2. DB Server 연결 : DriverManager.getConnection(jdbc:oracle:thin:@localhost:XE, scott, tiger)
// 3. SQL 쿼리문 명령 : Statement 또는 PreparedStatement
// 4. 결과 처리 : executeQuery(SELECT 일 때), executeUpdate(UPDATE, INSERT, DELETE)
// 5. 연결 종료 : 

// 연결 순서 : Connection > Statement 또는 PreparedStatement > ResultSet [ 단, ResultSet 은 SELECT 일때만 사용한다 ]
// 연결 종료 순서 : ResultSet > Statement 또는 PreparedStatement > Connection [ 단, ResultSet 은 SELECT 일때만 사용한다 ]

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class MemberDAO {
	private static final String DRIVER = "oracle.jdbc.driver.OracleDriver";
	private static final String URL = "jdbc:oracle:thin:@localhost:XE";
	private static final String USER = "scott";
	private static final String PASS = "tiger";

	public Connection getConn() {
		Connection con = null;
		try {
			Class.forName(DRIVER);
			con = DriverManager.getConnection(URL, USER, PASS);
		} catch (Exception e) {
			e.printStackTrace();
		} // try - catch
		return con;
	} // getConn : 연결 메소드 작성

	public boolean deleteMember(String id, String pwd) {
		boolean ok = false;
		Connection con = null;
		PreparedStatement ps = null;
		try {
			con = getConn();
			String sql = "delete member2 where id=? and pwd=?";
			ps = con.prepareStatement(sql);
			ps.setString(1, id);
			ps.setString(2, pwd);
			int cnt = ps.executeUpdate();
			if (cnt == 1)
				ok = true;
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (ps != null) {
				try {
					ps.close();
				} catch (SQLException e2) {
					e2.printStackTrace();
				} // ps try - catch
			} // ps if

			if (con != null) {
				try {
					con.close();
				} catch (SQLException e2) {
					e2.printStackTrace();
				} // con try - catch
			} // con if
		} // try - catch - finally
		return ok;
	} // deleteMember : 회원 탈퇴 메서드

	public boolean updateMember(MemberDTO dto) {
		boolean ok = false;
		Connection con = null;
		PreparedStatement ps = null;
		try {
			con = getConn();
			String sql = "Update member2 set name=?,tel=?,addr=?,birth=?,"
					+ "job=?,gender=?,email=?,intro=? where id=? and pwd=?";
			ps = con.prepareStatement(sql);
			ps.setString(1, dto.getName());
			ps.setString(2, dto.getTel());
			ps.setString(3, dto.getAddr());
			ps.setString(4, dto.getBirth());
			ps.setString(5, dto.getJob());
			ps.setString(6, dto.getGender());
			ps.setString(7, dto.getEmail());
			ps.setString(8, dto.getIntro());
			ps.setString(9, dto.getId());
			ps.setString(10, dto.getPwd());
			int cnt = ps.executeUpdate();
			if (cnt == 1)
				ok = true;
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (ps != null) {
				try {
					ps.close();
				} catch (SQLException e2) {
					e2.printStackTrace();
				} // ps try - catch
			} // ps if

			if (con != null) {
				try {
					con.close();
				} catch (SQLException e2) {
					e2.printStackTrace();
				} // con try - catch
			} // con if
		} // try - catch - finally
		return ok;
	} // updateMember : 회원정보를 수정하는 메소드

	public MemberDTO getMember(String id) {
		MemberDTO dto = new MemberDTO();
		Connection con = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			con = getConn(); // 연결 메소드를 불러온다
			String sql = "select * from member2 where id=?";
			ps = con.prepareStatement(sql);
			ps.setString(1, id); // 첫 번째 물음표에 id
			rs = ps.executeQuery();
			if (rs.next()) {
				dto.setId(rs.getString("id"));
				dto.setPwd(rs.getString("pwd"));
				dto.setName(rs.getString("name"));
				dto.setTel(rs.getString("tel"));
				dto.setAddr(rs.getString("addr"));
				dto.setBirth(rs.getString("birth"));
				dto.setJob(rs.getString("job"));
				dto.setGender(rs.getString("gender"));
				dto.setEmail(rs.getString("email"));
				dto.setIntro(rs.getString("intro"));
			} // if
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (rs != null) {
				try {
					rs.close();
				} catch (SQLException e2) {
					e2.printStackTrace();
				} // rs try - catch
			} // rs if
			
			if (ps != null) {
				try {
					ps.close();
				} catch (SQLException e2) {
					e2.printStackTrace();
				} // ps try - catch
			} // ps if

			if (con != null) {
				try {
					con.close();
				} catch (SQLException e2) {
					e2.printStackTrace();
				} // con try - catch
			} // con if
		} // try - catch - finally
		return dto;
	} // getMember : 한 사람의 회원 정보를 얻는 메소드

	public void insertMember(MemberDTO dto) {
		Connection con = null;
		PreparedStatement ps = null;
		try {
			con = getConn();
			String sql = "insert into member2"
					+ "(id,pwd,name,tel,addr,birth,job,gender,email,intro) "
					+ "values(?,?,?,?,?,?,?,?,?,?)";
			ps = con.prepareStatement(sql);
			ps.setString(1, dto.getId());
			ps.setString(2, dto.getPwd());
			ps.setString(3, dto.getName());
			ps.setString(4, dto.getTel());
			ps.setString(5, dto.getAddr());
			ps.setString(6, dto.getBirth());
			ps.setString(7, dto.getJob());
			ps.setString(8, dto.getGender());
			ps.setString(9, dto.getEmail());
			ps.setString(10, dto.getIntro());
			ps.executeUpdate(); // 실행
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (ps != null) {
				try {
					ps.close();
				} catch (SQLException e2) {
					e2.printStackTrace();
				} // ps try - catch
			} // ps if

			if (con != null) {
				try {
					con.close();
				} catch (SQLException e2) {
					e2.printStackTrace();
				} // con try - catch
			} // con if
		} // try - catch - finally
	} // insertMember : 회원 정보를 저장하는 메소드

} // MemberDAO : 데이터베이스 처리
// MemberDTO 클래스

public class MemberDTO {
	private String id;
	private String pwd;
	private String name;
	private String tel;
	private String addr;
	private String birth;
	private String job;
	private String gender;
	private String email;
	private String intro;

	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 getTel() {
		return tel;
	}

	public void setTel(String tel) {
		this.tel = tel;
	}

	public String getAddr() {
		return addr;
	}

	public void setAddr(String addr) {
		this.addr = addr;
	}

	public String getBirth() {
		return birth;
	}

	public void setBirth(String birth) {
		this.birth = birth;
	}

	public String getJob() {
		return job;
	}

	public void setJob(String job) {
		this.job = job;
	}

	public String getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getIntro() {
		return intro;
	}

	public void setIntro(String intro) {
		this.intro = intro;
	}

	@Override
	public String toString() {
		return "MemberDTO [id=" + id + ", pwd=" + pwd + ", name=" + name
				+ ", tel=" + tel + ", addr=" + addr + ", birth=" + birth
				+ ", job=" + job + ", gender=" + gender + ", email=" + email
				+ ", intro=" + intro + "]";
	}
} // MemberDTO : 한 레코드의 데이터


'Java > Java SE' 카테고리의 다른 글

Java 쌍따움표 안에 쌍따움표 처리  (0) 2013.08.29
Java JDBC SWING 프로그래밍 예제 - 성적관리  (9) 2013.08.24
Java 입출력(I/O)  (0) 2013.08.20
Java 쓰레드(Thread)  (0) 2013.08.19
Java 이름 규칙(Naming Rule)  (0) 2013.08.16

+ Recent posts