GDJ 9/15

Yongha Hwang·2023년 9월 15일
0

Spring

1. DB-Query

DB 접속 후 데이터를 처리하는 Query문을 실행 해 보자.


public boolean stmt() {
		boolean success = false;
		// 1. DB 접속
		if(conn!=null) {
			// 2. 쿼리문 준비 - java에서 쿼리문을 준비할때는 세미콜론은 뺀다.
			String sql = "create table member("
					+ "ID varchar(50) PRIMARY KEY"
					+ ",PW varchar(100)"
					+ ",NAME varchar(50)"
					+ ",AGE int(3)"
					+ ",GENDER varchar(4)"
					+ ",EMAIL varchar(100)"
					+ ")";
		
			// 3. 쿼리문 실행
			// 3-1. Statement 준비
			try {
				Statement stmt = conn.createStatement();
			//3-2. 쿼리문 실행
			int row=stmt.executeUpdate(sql);
			logger.info("영향받은 데이터 갯수 : "+row); // 4. 결과값 확인(테이블 생성은 데이터에 영향이 없으므로0)
			success = true;
			} catch (SQLException e) {
				e.printStackTrace();
			}finally {
				try {
					conn.close();
				} catch (Exception e) {				
					e.printStackTrace();
				}
			}
		}
			
		return success;
	}

	public boolean join(HashMap<String, String> param) throws SQLException {
		boolean success = false;
		// 1. DB 접속
		// 2. 쿼리문 준비
		String sql ="insert into member(id,pw,name,age,gender,email)"
		+ " values(?,?,?,?,?,?)";
		// 3. 쿼리문 실행
		// 3-1. PreparedStatement
		PreparedStatement ps = conn.prepareStatement(sql);
		try {
			// 3-2. ? 에 뭐가 들어가야 하는지 지정
			ps.setString(1, param.get("id"));
			ps.setString(2, param.get("pw"));
			ps.setString(3, param.get("name"));
			ps.setInt(4, Integer.parseInt(param.get("age")));
			ps.setString(5, param.get("gender"));
			ps.setString(6, param.get("email"));
			// 3-3. 쿼리문 실행
			int row = ps.executeUpdate();
			// 4. 결과값 반환
			if(row ==1) {
				success = true;
			}
		} catch (SQLException e) {
			e.printStackTrace();	
			conn.close();
			ps.close();
		}		
		return success;
	}

	public void list() throws Exception {
		// 1. 쿼리문 준비
		String sql ="SELECT *FROM member";
		// 2. PreparedStatement준비 - ? 가 있다면 뭐가 들어갈지 설정
		PreparedStatement ps = conn.prepareStatement(sql);
		// 3. 쿼리문 실행 - executeQuery() 으로 결과값으로 ResultSet
		ResultSet rs =ps.executeQuery();
		// ResultSet 을 하나씩 뽑아내야 한다.
		
		while(rs.next()) { // 값이 있는지 여부 확인, 있으면 해당 데이터로 커서가 이동된다.
			logger.info("id : "+rs.getString("id")); // 컬럼명으로 가져오기
			logger.info("pw : "+rs.getString(2)); // 컬럼 순서로 가져오기(비추천)
			logger.info("name : "+rs.getString("name"));
			logger.info("age : "+rs.getInt("age"));
			logger.info("gender : "+rs.getString("gender"));
			logger.info("email : "+rs.getString("email"));
			
		}
		// 자원반납
		ps.close();
		rs.close();
		conn.close();
						
	}

0개의 댓글

관련 채용 정보