토비의 스프링3이란 책을 보고 공부하는 중..^^;
우선 처음부터 리팩토링에 대해서 간략하게 얘기하는데 좋은 내용이다..
그래서 한번 따라해봄.^^
우선 DB 커넥션 클래스 준비
user.java 파일안
package springbook.user.domain;
public class User {
String id;
String name;
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;
}
}
2. UserDao.java 파일
package springbook.user.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import springbook.user.domain.User;
public class UserDao {
public UserDao(){
//초기화 ID 및 PASSWORD
}
public void add(User user) throws ClassNotFoundException,SQLException{
Class.forName("org.gjt.mm.mysql.Driver");
Connection c = DriverManager.getConnection("jdbc:mysql://localhost/springbook","root","1234");
String sql = "insert into users(id,name,password) values(?,?,?)";
PreparedStatement ps = c.prepareStatement(sql);
ps.setString(1, user.getId());
ps.setString(2,user.getName());
ps.setString(3,user.getPassword());
ps.execute();
ps.close();
c.close();
}
public User get(String id) throws ClassNotFoundException,SQLException{
Class.forName("org.gjt.mm.mysql.Driver");
Connection c = DriverManager.getConnection("jdbc:mysql://localhost/springbook","root","1234");
String sql = "select * from users where id = ?";
PreparedStatement ps = c.prepareStatement(sql);
ps.setString(1, id);
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 static void main(String[] args) throws ClassNotFoundException,SQLException{
UserDao dao = new UserDao();
/*
User user = new User();
user.setId("admin");
user.setName("tommmy");
user.setPassword("1234");
dao.add(user);
*/
User user2= dao.get("admin");
System.out.println(user2.getId()+","+user2.getName()+","+user2.getPassword());
}
}
테스트를 위해 메인하나 정의한 후 테스트완료함^^
그럼 이걸 가지고 하나씩 하나씩 리팩토링해보장..^^ 다 뭐를 위해? 스프링을 위해^^;;
'스프링프레임워크공부중 > 1부 초난감DAO 리팩토링' 카테고리의 다른 글
초난감DAO 리팩토링 3_3단게 ****관계설정 책임의 분리**** (0) | 2010.12.16 |
---|---|
초난감DAO 리팩토링 3_2단게 ****인터페이스의 도입**** (0) | 2010.12.16 |
초난감DAO 리팩토링 3_1단게 ****클래스의 분리**** (0) | 2010.12.16 |
초난감DAO 리팩토링 2단계 ****DB 커넥션 만들기의 독립**** (0) | 2010.12.16 |
초난감DAO 리팩토링 1단계 ****커넥션 만들기의 추출**** (0) | 2010.12.16 |