|
@@ -1,14 +1,18 @@
|
|
|
package com.uas.erp.database.repository;
|
|
package com.uas.erp.database.repository;
|
|
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
+import org.springframework.dao.DataAccessException;
|
|
|
import org.springframework.dao.EmptyResultDataAccessException;
|
|
import org.springframework.dao.EmptyResultDataAccessException;
|
|
|
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
|
|
|
+import org.springframework.jdbc.core.CallableStatementCallback;
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.jdbc.core.RowMapper;
|
|
import org.springframework.jdbc.core.RowMapper;
|
|
|
import org.springframework.stereotype.Repository;
|
|
import org.springframework.stereotype.Repository;
|
|
|
|
|
|
|
|
|
|
+import java.sql.CallableStatement;
|
|
|
import java.sql.ResultSet;
|
|
import java.sql.ResultSet;
|
|
|
import java.sql.SQLException;
|
|
import java.sql.SQLException;
|
|
|
|
|
+import java.sql.Types;
|
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
@@ -95,4 +99,37 @@ public class BaseRepository {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public Map<String, Object> callForMap(String exec, final Object[] vars, final String[] outParams) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ return jdbcTemplate.execute(exec, new CallableStatementCallback<Map<String, Object>>() {
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public Map<String, Object> doInCallableStatement(CallableStatement stmt) throws SQLException, DataAccessException {
|
|
|
|
|
+ int i = 1;
|
|
|
|
|
+ if (null != vars) {
|
|
|
|
|
+ for (Object var : vars) {
|
|
|
|
|
+ stmt.setObject(i++, var);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ int j = i;
|
|
|
|
|
+ if (null != outParams) {
|
|
|
|
|
+ for (String param : outParams) {
|
|
|
|
|
+ stmt.registerOutParameter(i++, Types.VARCHAR);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ stmt.execute();
|
|
|
|
|
+ if (null != outParams) {
|
|
|
|
|
+ Map<String, Object> data = new HashMap<>();
|
|
|
|
|
+ for (String param : outParams) {
|
|
|
|
|
+ data.put(param, stmt.getObject(j++));
|
|
|
|
|
+ }
|
|
|
|
|
+ return data;
|
|
|
|
|
+ }
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ } catch (EmptyResultDataAccessException e) {
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|