- package com.lianai88.common.access;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import javax.sql.DataSource;
- import org.springframework.jdbc.core.JdbcTemplate;
- import org.springframework.jdbc.core.ParameterDisposer;
- import org.springframework.jdbc.core.PreparedStatementCreator;
- import org.springframework.jdbc.core.PreparedStatementSetter;
- import org.springframework.jdbc.core.RowMapper;
- import org.springframework.jdbc.support.GeneratedKeyHolder;
- import org.springframework.jdbc.support.KeyHolder;
- /**
- * 数据存取适配器
- * @author David Day
- */
- public class JdbcTemplateAdapter extends JdbcTemplate {
- public JdbcTemplateAdapter() {
- super();
- }
- public JdbcTemplateAdapter(DataSource ds) {
- super(ds);
- }
- /**
- * 增加并且获取主键
- * @param sql sql语句
- * @param params 参数列表
- * @return 主键
- */
- public Object insertAndGetKey(final String sql, final Object... params) {
- logger.debug("Executing SQL update and returning generated keys");
- final KeyHolder key = new GeneratedKeyHolder();
- update(new PreparedStatementCreator() {
- public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
- PreparedStatement ps = con.prepareStatement(sql,
- PreparedStatement.RETURN_GENERATED_KEYS);
- PreparedStatementSetter pss = newArgPreparedStatementSetter(params);
- try {
- if (pss != null) {
- pss.setValues(ps);
- }
- } finally {
- if (pss instanceof ParameterDisposer) {
- ((ParameterDisposer) pss).cleanupParameters();
- }
- }
- return ps;
- }
- }, key);
- return key.getKey();
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/070420132718.html
来源: http://www.codesnippet.cn/detail/070420132718.html