-
1.1 초난감 DAO책/토비의 스프링 2024. 7. 7. 13:55
책을 읽고 흘려버리기 보단, 꼭꼭 씹어먹기 위해 정리해봅니다.
이 포스팅은 이일민님의 <토비의 스프링3>에 기반하고 있습니다.
1. 클래스 구성
1. User.java
자바빈 규약을 따르는 클래스
더보기public class User { private String id; private String name; private String password; 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; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
자바 빈 규약
- 재사용 가능한 소프트웨어 컴포넌트를 작성하기 위한 규약
- sun사에서 만들어서 현재는 오라클에서 관리
- 다양한 자바 기반 애플리케이션에 같이 사용할 수 있도록 프로토콜화
1. 기본 생성자를 갖는다. public , no-arg
2. 모든 필드는 private으로 선언된다.
3. 모든 필드에 대해 getter와 setter를 갖는다.
- get필드명, set필드명 과 같은 규칙으로 짓는다
- boolean 타입의 경우 is필드명을 사용할 수 있다
4. 직렬화가 가능해야한다. implements Serializable2. UserDao.java
유저를 데이터베이스에 삽입 조회 하는 클래스
더보기import java.sql.*; public class UserDao { public void add(User user) throws SQLException, ClassNotFoundException { Class.forName("com.mysql.jdbc.Driver"); Connection c = DriverManager.getConnection("jdbc:mysql://localhost:3306/springbook", "root", "12345678"); PreparedStatement ps = c.prepareStatement("insert into users (id, name, password) values (?, ?, ?)"); ps.setString(1, user.getId()); ps.setString(2, user.getName()); ps.setString(3, user.getPassword()); ps.executeUpdate(); ps.close(); c.close(); } public User get(String userId) throws SQLException, ClassNotFoundException { Class.forName("com.mysql.jdbc.Driver"); Connection c = DriverManager.getConnection("jdbc:mysql://localhost:3306/springbook", "root", "12345678"); PreparedStatement ps = c.prepareStatement("select * from users where id = ?"); ps.setString(1, userId); ResultSet rs = ps.executeQuery(); rs.next(); User user = new User(); user.setId(rs.getString("id")); user.setName(rs.getString("name")); user.setPassword(rs.getString("password")); rs.close(); ps.close(); c.close(); return user; } public void deleteAll() throws ClassNotFoundException, SQLException { Class.forName("com.mysql.jdbc.Driver"); Connection c = DriverManager.getConnection("jdbc:mysql://localhost:3306/springbook", "root", "12345678"); PreparedStatement ps = c.prepareStatement("delete from users"); ps.executeUpdate(); ps.close(); c.close(); } }
3. UserDaoTest.java
작성된 UserDao가 정상적으로 동작하는지 확인을 위한 클래스
더보기import java.sql.SQLException; public class UserDaoTest { public static void main(String[] args) throws SQLException, ClassNotFoundException { UserDao dao = new UserDao(); dao.deleteAll(); User user = new User(); user.setId("a3_n283u2"); user.setName("han"); user.setPassword("1234"); dao.add(user); System.out.println(user.getId() + " 등록 성공"); User user2 = dao.get(user.getId()); System.out.println(user2.getId() + " 조회 성공"); System.out.println(user2.getId() + " 조회 성공"); } }
[출처]
이일민님의 <토비의 스프링3>
[이미지 출처]'책 > 토비의 스프링' 카테고리의 다른 글
1.4.1 오브젝트 팩토리 (0) 2024.07.08 1.3.3 관계설정 책임의 분리 (0) 2024.07.07 1.3.1 클래스의 분리 (0) 2024.07.07 1.2.3 DB 커넥션 만들기의 독립 (0) 2024.07.07 1.2.2 커넥션 만들기의 추출 (0) 2024.07.07