nme.kr

Ch.20 데이터베이스

데이터베이스 개요

데이터베이스 구조

MariaDB 설치

기본 SQL

자바 연결

package chapter20;

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

public class DBConnect {

	public static void main(String[] args) {
		
		// 데이터베이스 접속 객체
		Connection conn = null;
		
		try {
			// MariaDB 드라이버 로드
			Class.forName("org.mariadb.jdbc.Driver");
			// 데이터베이스 접속
			conn = DriverManager.getConnection(
					"jdbc:mariadb://localhost:3306/javadb", // Host
					"root", // 사용자
					"java1234"); // 암호
			
		} catch (ClassNotFoundException e) {
			System.out.println(e.getMessage());
		} catch (SQLException e) {
			System.out.println(e.getMessage());
		} finally {
			if (conn != null) try {conn.close();} catch(Exception e) {}
		}
		
		if (conn != null) {
			System.out.println("데이터베이스 접속");
		}
	}
}

데이터 조회 / 처리

MemberVO.java

package chapter20;

public class MemberVO {

	private int memberno; // 회원번호
	private String id;	  // 아이디
	private String name;  // 이름
	
	public int getMemberno() {
		return memberno;
	}
	public void setMemberno(int memberno) {
		this.memberno = memberno;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
}

MemberDAO.java
package chapter20;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

public class MemberDAO {
	
	// 데이터베이스 접속 객체
	Connection conn = null;
	Statement stmt = null;
	ResultSet rs = null;

	// 데이터베이스 접속
	public MemberDAO() {
		
		try {
			// MariaDB 드라이버 로드
			Class.forName("org.mariadb.jdbc.Driver");
			// 데이터베이스 접속
			conn = DriverManager.getConnection(
					"jdbc:mariadb://localhost:3306/javadb", // Host
					"root", // 사용자
					"java1234"); // 암호
			
		} catch (ClassNotFoundException e) {
			System.out.println(e.getMessage());
		} catch (SQLException e) {
			System.out.println(e.getMessage());
		}
		
	}
	
	// 데이터 입력
	public int insert(MemberVO vo) {
		
		int result = 0;
		try {
			String sql = "INSERT INTO member (memberno, id, name) "
					+ "VALUES ("+vo.getMemberno()+", '"+vo.getId()+"', '"
					+ vo.getName()+"')";
			stmt = conn.createStatement();
			result = stmt.executeUpdate(sql);
		} catch (SQLException e) {
			System.out.println(e.getMessage());
		}
		return result;
	}
	
	// 데이터 조회
	public MemberVO selectOne(int memberno) {
		
		MemberVO vo = new MemberVO();
		try {
			String sql = "SELECT * FROM member WHERE memberno="+memberno;
			stmt = conn.createStatement();
			rs = stmt.executeQuery(sql);
			
			if (rs.next()) {
				vo.setMemberno(rs.getInt("memberno"));
				vo.setId(rs.getString("id"));
				vo.setName(rs.getString("name"));
			}
		} catch (SQLException e) {
			System.out.println(e.getMessage());
		}
		return vo;
	}
	
	// 데이터 수정
	public int update(MemberVO vo) {
		
		int result = 0;
		try {
			String sql = "UPDATE member SET id='"
					+ vo.getId()+"', name='"+vo.getName()+"' "
					+ "WHERE memberno="+vo.getMemberno();
			stmt = conn.createStatement();
			result = stmt.executeUpdate(sql);
		} catch (SQLException e) {
			System.out.println(e.getMessage());
		}
		return result;
	}
	
	// 데이터 삭제
	public int delete(int memberno) {
		
		int result = 0;
		try {
			String sql = "DELETE FROM member WHERE memberno="+memberno;
			stmt = conn.createStatement();
			result = stmt.executeUpdate(sql);
		} catch (SQLException e) {
			System.out.println(e.getMessage());
		}
		return result;
	}
	
	// 회원목록
	public List<MemberVO> list() {
		List<MemberVO> list = new ArrayList<MemberVO>();
		
		try {
			String sql = "SELECT * FROM member";
			stmt = conn.createStatement();
			rs = stmt.executeQuery(sql);
			
			while (rs.next()) {
				MemberVO vo = new MemberVO();
				vo.setMemberno(rs.getInt("memberno"));
				vo.setId(rs.getString("id"));
				vo.setName(rs.getString("name"));
				list.add(vo);
			}
		} catch (SQLException e) {
			System.out.println(e.getMessage());
		}
		return list;
	}
	
	
	
	// 자원 close()
	public void close() {
		if (conn != null) {
			try { conn.close(); } catch (SQLException e) {}
		}
		if (stmt != null) {
			try { stmt.close(); } catch (SQLException e) {}
		}
		if (rs != null) {
			try { rs.close(); } catch (SQLException e) {}
		}
	}
}

MemberMain.java
package chapter20;

import java.util.List;

public class MemberMain {

	public static void main(String[] args) {
		
		// 회원객체 생성
		MemberVO vo = new MemberVO();
		vo.setMemberno(2);
		vo.setId("hong");
		vo.setName("홍길동");
		
		// dao 객체 생성
		MemberDAO dao = new MemberDAO();
		
		// 회원 추가
		int r = dao.insert(vo);
		if (r > 0) {
			System.out.println("회원 등록 성공");
		}
		
		// 2번 회원 조회후 출력 
		MemberVO rvo = dao.selectOne(2);
		System.out.println("회원정보 출력");
		System.out.println("회원번호 : "+rvo.getMemberno());
		System.out.println("아이디 : "+rvo.getId());
		System.out.println("이름 : "+rvo.getName());
		
		// 회원정보 수정
		vo.setName("고길동");
		int r2 = dao.update(vo);
		if (r2 > 0) {
			System.out.println("회원 수정 성공");
		}
		
		// 전체회원 목록 조회
		System.out.println("회원목록 조회");
		List<MemberVO> list = dao.list();
		for (int i=0; i<list.size(); i++) {
			System.out.println("회원번호:"+list.get(i).getMemberno()
					+"\t아이디:"+list.get(i).getId()
					+"\t이름:"+list.get(i).getName());
		}
		
		
		// 회원 삭제
		int r3 = dao.delete(2);
		if (r3 > 0) {
			System.out.println("회원 삭제 성공");
		}
		
		
		// 자원 해제
		dao.close();

	}

}

[실행결과]