Example usage for org.springframework.jdbc.core PreparedStatementCreator PreparedStatementCreator

List of usage examples for org.springframework.jdbc.core PreparedStatementCreator PreparedStatementCreator

Introduction

In this page you can find the example usage for org.springframework.jdbc.core PreparedStatementCreator PreparedStatementCreator.

Prototype

PreparedStatementCreator

Source Link

Usage

From source file:com.javacodegags.waterflooding.model.FloodingImplemented.java

@Override
public int insert(final String name) {
    final String sql = "INSERT INTO flooding (name) VALUES (?);";
    KeyHolder holder = new GeneratedKeyHolder();
    jdbcTemplate.update(new PreparedStatementCreator() {

        @Override//ww w.  j  av  a  2s  .  c  o m
        public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
            PreparedStatement ps = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
            ps.setString(1, name);
            return ps;
        }
    }, holder);
    return holder.getKey().intValue();
}

From source file:db.postgres.V2_0_1__InitializeIdentityZones.java

private Long createDefaultAuthzZone(final JdbcTemplate jdbcTemplate) {
    final String insertZoneSql = "INSERT INTO authorization_zone (name, description, subdomain) "
            + "VALUES (?,?,?)";
    KeyHolder holder = new GeneratedKeyHolder();

    jdbcTemplate.update(new PreparedStatementCreator() {

        @Override/*ww w .j  av  a  2 s  . co m*/
        public PreparedStatement createPreparedStatement(final Connection connection) throws SQLException {
            PreparedStatement ps = connection.prepareStatement(insertZoneSql, new String[] { "id" });
            ps.setString(1, "apm-migrated");
            ps.setString(2, "APM Migrated Zone from mvp1");
            ps.setString(3, "apm-migrated");
            return ps;
        }
    }, holder);

    Long acsAuthorizationZoneId = holder.getKey().longValue();
    return acsAuthorizationZoneId;
}

From source file:com.unito.model.repository.TableRepository.java

public int saveTable(Table tableToSave) {
    System.out.println("saving");
    KeyHolder keyHolder = new GeneratedKeyHolder();
    System.out.println(keyHolder.getKey());
    //http://docs.spring.io/spring/docs/2.5.x/reference/jdbc.html#jdbc-auto-genereted-keys
    jdbcTemplate.update(new PreparedStatementCreator() {
        @Override//from w  w  w  .j  a va2s.c o m
        public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
            PreparedStatement ps = connection.prepareStatement(INSERT_TABLE, new String[] { "id" });
            ps.setString(1, tableToSave.getName());
            ps.setString(2, tableToSave.getOwner());
            return ps;
        }
    }, keyHolder);
    return keyHolder.getKey().intValue() >= 0 ? keyHolder.getKey().intValue() : -1;
}

From source file:com.hs.mail.imap.dao.MySqlMessageDao.java

private long addPhysicalMessage(final MailMessage message) {
    final String sql = "INSERT INTO physmessage (size, internaldate, subject, sentdate, fromaddr) VALUES(?, ?, ?, ?, ?)";
    final MessageHeader header = message.getHeader();
    KeyHolder keyHolder = new GeneratedKeyHolder();
    getJdbcTemplate().update(new PreparedStatementCreator() {
        public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
            PreparedStatement pstmt = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
            pstmt.setLong(1, message.getSize()); // size
            pstmt.setTimestamp(2, new Timestamp(message.getInternalDate().getTime())); // internaldate
            pstmt.setString(3, header.getSubject()); // subject
            Date sent = header.getDate();
            pstmt.setTimestamp(4, (sent != null) ? new Timestamp(sent.getTime()) : null); // sentdate
            pstmt.setString(5, (header.getFrom() != null) ? header.getFrom().getDisplayString() : null); // fromaddr
            return pstmt;
        }/*w ww  .j a  v a 2 s .  co m*/
    }, keyHolder);
    long physmessageid = keyHolder.getKey().longValue();
    message.setPhysMessageID(physmessageid);
    addHeader(physmessageid, header);
    return physmessageid;
}

From source file:com.gzj.tulip.jade.dataaccess.DataAccessImpl.java

private PreparedStatementCreator getPreparedStatementCreator(//
        final String sql, final Object[] args, final boolean returnKeys) {
    PreparedStatementCreator creator = new PreparedStatementCreator() {

        @Override/*from   ww  w .  ja v a2s  .c o  m*/
        public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
            PreparedStatement ps = con.prepareStatement(sql);
            if (returnKeys) {
                ps = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
            } else {
                ps = con.prepareStatement(sql);
            }

            if (args != null) {
                for (int i = 0; i < args.length; i++) {
                    Object arg = args[i];
                    if (arg instanceof SqlParameterValue) {
                        SqlParameterValue paramValue = (SqlParameterValue) arg;
                        StatementCreatorUtils.setParameterValue(ps, i + 1, paramValue, paramValue.getValue());
                    } else {
                        StatementCreatorUtils.setParameterValue(ps, i + 1, SqlTypeValue.TYPE_UNKNOWN, arg);
                    }
                }
            }
            return ps;
        }
    };
    return creator;
}

From source file:com.acme.spring.jdbc.repository.impl.JdbcStockRepository.java

/**
 * {@inheritDoc}/*w  w  w  .  j a v  a 2 s . c  o m*/
 */
@Override
public long save(final Stock stock) {

    // validates the input
    validateNoNull(stock, "stock");
    validateNotEmpty(stock.getSymbol(), "symbol");

    KeyHolder keyHolder = new GeneratedKeyHolder();
    // performs the insert in the database
    jdbcTemplate.update(new PreparedStatementCreator() {
        public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
            PreparedStatement ps = connection.prepareStatement(
                    "insert into Stock(name, symbol, value, date) values (?, ?, ?, ?)", new String[] { "id" });

            int index = 1;
            ps.setString(index++, stock.getName());
            ps.setString(index++, stock.getSymbol());
            ps.setBigDecimal(index++, stock.getValue());
            ps.setDate(index++, new java.sql.Date(stock.getDate().getTime()));
            return ps;
        }
    }, keyHolder);

    // retrieves the value primary key for the inserted key
    stock.setId((Long) keyHolder.getKey());

    return stock.getId();
}

From source file:com.jagornet.dhcp.db.JdbcIdentityAssocDAO.java

public void create(final IdentityAssoc ia) {
    /**//from  w w w. j  a  v a 2  s .  c  om
     * Note: see https://issues.apache.org/jira/browse/DERBY-3609
     * "Formally, Derby does not support getGeneratedKeys since 
     * DatabaseMetaData.supportsGetGeneratedKeys() returns false. 
     * However, Statement.getGeneratedKeys() is partially implemented,
     * ... since it will only return a meaningful result when an single 
     * row insert is done with INSERT...VALUES"
     * 
     * Spring has thus provided a workaround as described here:
     * http://jira.springframework.org/browse/SPR-5306
     */
    GeneratedKeyHolder newKey = new GeneratedKeyHolder();
    getJdbcTemplate().update(new PreparedStatementCreator() {
        @Override
        public PreparedStatement createPreparedStatement(Connection conn) throws SQLException {
            PreparedStatement ps = conn.prepareStatement(
                    "insert into identityassoc" + " (duid, iatype, iaid, state)" + " values (?, ?, ?, ?)",
                    PreparedStatement.RETURN_GENERATED_KEYS);
            ps.setBytes(1, ia.getDuid());
            ps.setByte(2, ia.getIatype());
            ps.setLong(3, ia.getIaid());
            ps.setByte(4, ia.getState());
            return ps;
        }
    }, newKey);
    Number newId = newKey.getKey();
    if (newId != null) {
        ia.setId(newId.longValue());
    }
}

From source file:net.duckling.ddl.service.resource.dao.StarmarkDAOImpl.java

@Override
public int create(final Starmark starmark) {
    GeneratedKeyHolder keyHolder = new GeneratedKeyHolder();
    this.getJdbcTemplate().update(new PreparedStatementCreator() {

        @Override/*from ww  w  .jav  a  2s.  c o  m*/
        public PreparedStatement createPreparedStatement(Connection conn) throws SQLException {
            PreparedStatement ps = null;
            ps = conn.prepareStatement(SQL_CREATE, PreparedStatement.RETURN_GENERATED_KEYS);
            int i = 0;
            ps.setInt(++i, starmark.getRid());
            ps.setInt(++i, starmark.getTid());
            ps.setString(++i, starmark.getUid());
            ps.setTimestamp(++i, new Timestamp(starmark.getCreateTime().getTime()));
            return ps;
        }

    }, keyHolder);
    Number key = keyHolder.getKey();
    return (key == null) ? -1 : key.intValue();
}

From source file:edu.pitt.sis.infsci2730.finalProject.dao.TransactionDao.java

public static TransactionDBModel InsertTransactionByID(final String[] para) throws SQLException {

    KeyHolder holder = new GeneratedKeyHolder();
    jdbcTemplate.update(new PreparedStatementCreator() {

        String sql = "insert into Transactions (transaction_date, customer_id) "
                + "values (CURRENT_TIMESTAMP,?)";

        @Override/*from w  w w .  j a  v a  2 s .c  o  m*/
        public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
            PreparedStatement ps = connection.prepareStatement(sql.toString(), Statement.RETURN_GENERATED_KEYS);
            ps.setString(1, para[0]);

            return ps;
        }
    }, holder);

    int newId = holder.getKey().intValue();

    return jdbcTemplate.queryForObject("select * from Transactions where TRANSACTION_ID=" + newId,
            new TransactionRowMapper());
}

From source file:com.hs.mail.imap.dao.MySqlUserDao.java

public long addUser(final User user) {
    final String sql = "INSERT INTO user (userid, passwd, maxmail_size, forward) VALUES(?, ?, ?, ?)";
    KeyHolder keyHolder = new GeneratedKeyHolder();
    getJdbcTemplate().update(new PreparedStatementCreator() {
        public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
            PreparedStatement pstmt = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
            pstmt.setString(1, user.getUserID());
            pstmt.setString(2, user.getPassword());
            pstmt.setLong(3, user.getQuota());
            pstmt.setString(4, user.getForwardTo());
            return pstmt;
        }//from  w  ww  . j  av a 2 s. c o m
    }, keyHolder);
    long id = keyHolder.getKey().longValue();
    user.setID(id);
    return id;
}