[Spring JDBC] - DAO

정택부·2022년 12월 7일

SpringJDBC

목록 보기
1/1

DAO 입력하기

[JdbcDAO.java]

@Component
public class JdbcDAO {
	
	// JDBC 관리 객체를 주입 받는다.
	@Autowired
	private JdbcTemplate db;
	
	// 저장
	public void insert_data(JdbcBean bean) {
		String sql = "insert into JDBC (int_data, str_data) values (?, ?)";
		db.update(sql, bean.getInt_data(), bean.getStr_data());
	}
    
    /*기존코드*/

[MainClass.java]

public class MainClass {

	public static void main(String[] args) {

		AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(BeanConfigClass.class);

		// dao를 가져온다.
		JdbcDAO dao = ctx.getBean(JdbcDAO.class);

		// insert
		JdbcBean bean1 = new JdbcBean();
		bean1.setInt_data(2);
		bean1.setStr_data("문자열2");
		dao.insert_data(bean1);
		
		ctx.close();
	}

}

[DB 결과]

숫자만 바꿔주면서 값을 입력해주면 DB에 들어간다


DAO 가져오기


[MapperClass.java]

@Component
public class MapperClass implements RowMapper<JdbcBean>{
	
	@Override
	public JdbcBean mapRow(ResultSet rs, int rowNum) throws SQLException {
		//select문의 결과를 JdbcBean객체에 담을수 있도록 설정함
		
		JdbcBean bean = new JdbcBean();
		bean.setInt_data(rs.getInt("int_data"));
		bean.setStr_data(rs.getString("str_data"));
		
		return bean;
	}
}

[JdbcDAO]

	/*기존코드*/
    
    // Mapper를 주입받는다.
	@Autowired
	private MapperClass mapper;
    
    
    ...
    
    
    // 가져오기
	public List<JdbcBean> select_data() {
		String sql = "select INT_DATA, STR_DATA from JDBC";
		List<JdbcBean> list = db.query(sql, mapper);
		return list;
	}
    
    /*기존코드*/

[MainClass.java]

		/* insert부분에서 데이터값이 중복이면 주석처리 */
        
        // select 가져오기
		List<JdbcBean> list = dao.select_data();

		for (JdbcBean bean : list) {
			System.out.printf("int_data : %d\n", bean.getInt_data());
			System.out.printf("str_data : %s\n", bean.getStr_data());
			System.out.println("----------------------------------------");
		}

[결과]

if) 한줄만 가져올 때?
[JdbcDAO.java]

	// 하나만 가져올 때
	public List<JdbcBean> select_data(int int_data){
		String sql = "select INT_DATA, STR_DATA from JDBC where int_data = ?";
		List<JdbcBean> one = db.query(sql, mapper, int_data);
		return one;
	}

DAO 수정하기

[JdbcDAO.java]

	// 수정
	public void update_data(JdbcBean bean) {
		String sql = "update jdbc_table set str_data = ? where int_data = ?";
		db.update(sql, bean.getStr_data(), bean.getInt_data());
	}

[MainClass.java]

		// update
		JdbcBean bean4 = new JdbcBean();
		bean4.setInt_data(1);				// int값이 1인 데이터를 선택
		bean4.setStr_data("문자열3");		// 선택된 데이터의 문자열 값을 "문자열3"으로 변경
		dao.update_data(bean4);

[결과]


DAO 삭제하기

[JdbcDAO.java]

	// 삭제
	public void delete_data(int int_data) {
		String sql = "delete from JDBC where INT_DATA = ?";
		db.update(sql, int_data);
	}

[MainClass.java]

		// delete
		dao.delete_data(1); // int값이 1인 데이터를 삭제!!

[DB 결과]

profile
경험치 쌓는 중

0개의 댓글