[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에 들어간다

[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; }
[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);
[결과]

[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 결과]
