package test.test.test;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Locale;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.PreparedStatementCreator;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import org.springframework.jdbc.support.GeneratedKeyHolder;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
* Handles requests for the application home page.
*/
@Controller
public class HomeController extends JdbcDaoSupport {
@Autowired
public void setDataSourceForAutoWire(DataSource ds){
super.setDataSource(ds);
}
/**
* Simply selects the home view to render by returning its name.
*/
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
GeneratedKeyHolder generatedKeyHolder = new GeneratedKeyHolder();
System.out.println("DB Source obejct check : " + getJdbcTemplate().getDataSource().toString());
try{
getJdbcTemplate().update("DROP TABLE test_tbl;");
}catch(Exception e){
//없을수도 있음
}
getJdbcTemplate().update(
"CREATE TABLE test_tbl( " +
"tt_idx INTEGER AUTO_INCREMENT PRIMARY KEY, " +
"tt_str character varying(15) NOT NULL, " +
"tt_dt datetime " +
")"
);
getJdbcTemplate().update(
new PreparedStatementCreator() {
public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
PreparedStatement ps = con.prepareStatement("INSERT INTO test_tbl(" +
"tt_str, " +
"tt_dt" +
") VALUES(" +
"?, " +
"sysdate" +
")",
Statement.RETURN_GENERATED_KEYS
);
ps.setString(1, "test");
return ps;
}
},
generatedKeyHolder
);
System.out.println(generatedKeyHolder.getKey() == null ? "getKey is NULL" : "OK");
System.out.println(generatedKeyHolder.getKeyList().size() == 0 ? "getKeyList is empty" : "OK");
System.out.println(generatedKeyHolder.getKeys() == null ? "getKeys is NULL" : "OK");
return "home";
}
}
안녕하세요. 질문 감사드립니다.
우선, 바인드를 사용한 쿼리를 Static으로 변경하여 Test가 가능하신가요?
가능하시다면 쿼리를 변경하여 Test 부탁 드립니다.