应该是这样的:
public class UspEmployeeInsert extends StoredProcedure {
private final String NAME = "usp_employee_insert";
public UspEmployeeInsert(DataSource dataSource) {
setDataSource(dataSource);
setSql(NAME);
declareParameter(new SqlParameter("full_name", Types.VARCHAR));
declareParameter(new SqlParameter("gender", Types.VARCHAR));
declareParameter(new SqlParameter("department", Types.DATE));
declareParameter(new SqlParameter("position", Types.VARCHAR));
declareParameter(new SqlParameter("salary", Types.FLOAT));
compile();
}
public void execute(
String fullName,
String gender,
Date deparment,
String position,
Float salary){
final Map<String, Object> parameters = new HashMap<>(5);
parameters.put("full_name", fullName);
parameters.put("gender", gender);
parameters.put("department", deparment);
parameters.put("position", position);
parameters.put("salary", salary);
execute(parameters);
}
}
或者你可以这样做:
@Repository
public class UspEmployeeRepository {
private final String NAME = "usp_employee_insert";
private final JdbcTemplate jdbcTemplate;
@Autowired
public UspEmployeeRepository(DataSource dataSource) {
jdbcTemplate = new JdbcTemplate(dataSource);
}
public void insert(
String fullName,
String gender,
Date deparment,
String position,
Float salary){
jdbcTemplate.update(
"{ call usp_employee_insert(?,?,?,?,?) }",
fullName,gender,deparment,position,salary
);
}
}