최신 스프링 특징
1. 객체생성을 @Autowired를 통해 자동 관리(의존성 주입)
2. ResponseEntity 사용으로 JSON 응답
3. @RequestBody 사용하여 JSON 데이터 자동 변환
context.xml에 안쓰고 application.yml에 쓰겠지아마?
하지만 회사에서 스프링을 안쓰고 JSP/서블릿 타입의 레거시한 자바 스타일을 갖고 있을수 있다.
public class HrMakeFileAction extends AbstractAction {
public void makeTaxFile(BusinessContext ctx) throws Exception {
HrMakeFileInf hrMakeFileService = (HrMakeFileInf) ServiceManagerFactory.getService("HrMakeFileService");
DataSet dsInput = (DataSet) ctx.getInputObject("ds_FileInput");
// 서비스 호출하여 파일 생성 및 결과 받기
DataSet dsResult = hrMakeFileService.makeTaxFile(dsInput);
ctx.addOutput("ds_Result", dsResult);
// dsResult에서 dsDetail20을 추출하여 사용할 수 있음
DataSet dsDetail20 = dsResult.getDataSet("dsDetail20");
ctx.addOutput("dsDetail20", dsDetail20);
}
}
이런식으로 컨트롤 만들어놓고 구현체를 만듬
...
DataSet dsDetail20 = new DataSet();
...
con = getConnection();
SqlExecutor db = SqlMapFactoryHelper.makeSqlExecutor(con,SqlMapFactoryHelper.NEXACRO17);
SqlRequest sql = SqlMapFactoryHelper.makeSqlRequest(strSqlId, SqlMapFactoryHelper.NEXACRO17);
sql.addParamObject("ds_Input", dsInput);
dsDetail20 = (DataSet) db.query(sql).getResultObject();//조회프로시저 호출 메소드
...
구현체에는 이런식으로 넥사 내장 함수에 도움을 받아 Db에 연결함
넥사크로를 안쓴다면 JDBC에 DriverManager를 이용해 dB경로, ID, PW, 쿼리 등등을 넘겨서 받아야함
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/your_database", "username", "password");
// 쿼리 실행
String sql = "SELECT * FROM your_table WHERE condition = ?";
pstmt = con.prepareStatement(sql);
pstmt.setString(1, dsInput.getString(0, "your_condition_value")); // dsInput에서 값을 가져와 쿼리 파라미터 설정
// 실행 후 결과 받기
rs = pstmt.executeQuery();
// 결과를 DataSet에 담기
while (rs.next()) {
String columnValue = rs.getString("column_name");
// DataSet에 행 추가
dsDetail20.addRow();
dsDetail20.set(0, "column_name", columnValue);
}
직관적이지 않아서 너무 불편..
spring이 좋아