Example usage for org.springframework.jdbc.datasource SingleConnectionDataSource SingleConnectionDataSource

List of usage examples for org.springframework.jdbc.datasource SingleConnectionDataSource SingleConnectionDataSource

Introduction

In this page you can find the example usage for org.springframework.jdbc.datasource SingleConnectionDataSource SingleConnectionDataSource.

Prototype

public SingleConnectionDataSource(Connection target, boolean suppressClose) 

Source Link

Document

Create a new SingleConnectionDataSource with a given Connection.

Usage

From source file:org.springframework.jdbc.core.AbstractRowMapperTests.java

protected void setUp() throws SQLException {
    conControl = MockControl.createControl(Connection.class);
    con = (Connection) conControl.getMock();
    con.isClosed();/*from   ww w .  j a  v  a2s  . c  om*/
    conControl.setDefaultReturnValue(false);

    rsmdControl = MockControl.createControl(ResultSetMetaData.class);
    rsmd = (ResultSetMetaData) rsmdControl.getMock();
    rsmd.getColumnCount();
    rsmdControl.setReturnValue(4, 1);
    rsmd.getColumnLabel(1);
    rsmdControl.setReturnValue("name", 1);
    rsmd.getColumnLabel(2);
    rsmdControl.setReturnValue("age", 1);
    rsmd.getColumnLabel(3);
    rsmdControl.setReturnValue("birth_date", 1);
    rsmd.getColumnLabel(4);
    rsmdControl.setReturnValue("balance", 1);
    rsmdControl.replay();

    rsControl = MockControl.createControl(ResultSet.class);
    rs = (ResultSet) rsControl.getMock();
    rs.getMetaData();
    rsControl.setReturnValue(rsmd, 1);
    rs.next();
    rsControl.setReturnValue(true, 1);
    rs.getString(1);
    rsControl.setReturnValue("Bubba", 1);
    rs.wasNull();
    rsControl.setReturnValue(false, 1);
    rs.getLong(2);
    rsControl.setReturnValue(22, 1);
    rs.getTimestamp(3);
    rsControl.setReturnValue(new Timestamp(1221222L), 1);
    rs.getBigDecimal(4);
    rsControl.setReturnValue(new BigDecimal("1234.56"), 1);
    rs.next();
    rsControl.setReturnValue(false, 1);
    rs.close();
    rsControl.setVoidCallable(1);
    rsControl.replay();

    stmtControl = MockControl.createControl(Statement.class);
    stmt = (Statement) stmtControl.getMock();

    con.createStatement();
    conControl.setReturnValue(stmt, 1);
    stmt.executeQuery("select name, age, birth_date, balance from people");
    stmtControl.setReturnValue(rs, 1);
    if (debugEnabled) {
        stmt.getWarnings();
        stmtControl.setReturnValue(null, 1);
    }
    stmt.close();
    stmtControl.setVoidCallable(1);

    conControl.replay();
    stmtControl.replay();

    conControl2 = MockControl.createControl(Connection.class);
    con2 = (Connection) conControl2.getMock();
    con2.isClosed();
    conControl2.setDefaultReturnValue(false);

    rsmdControl2 = MockControl.createControl(ResultSetMetaData.class);
    rsmd2 = (ResultSetMetaData) rsmdControl2.getMock();
    rsmd2.getColumnCount();
    rsmdControl2.setReturnValue(4, 2);
    rsmd2.getColumnLabel(1);
    rsmdControl2.setReturnValue("name", 2);
    rsmd2.getColumnLabel(2);
    rsmdControl2.setReturnValue("age", 2);
    rsmd2.getColumnLabel(3);
    rsmdControl2.setReturnValue("birth_date", 1);
    rsmd2.getColumnLabel(4);
    rsmdControl2.setReturnValue("balance", 1);
    rsmdControl2.replay();

    rsControl2 = MockControl.createControl(ResultSet.class);
    rs2 = (ResultSet) rsControl2.getMock();
    rs2.getMetaData();
    rsControl2.setReturnValue(rsmd2, 2);
    rs2.next();
    rsControl2.setReturnValue(true, 2);
    rs2.getString(1);
    rsControl2.setReturnValue("Bubba", 2);
    rs2.wasNull();
    rsControl2.setReturnValue(true, 2);
    rs2.getLong(2);
    rsControl2.setReturnValue(0, 2);
    rs2.getTimestamp(3);
    rsControl2.setReturnValue(new Timestamp(1221222L), 1);
    rs2.getBigDecimal(4);
    rsControl2.setReturnValue(new BigDecimal("1234.56"), 1);
    rs2.next();
    rsControl2.setReturnValue(false, 1);
    rs2.close();
    rsControl2.setVoidCallable(2);
    rsControl2.replay();

    stmtControl2 = MockControl.createControl(Statement.class);
    stmt2 = (Statement) stmtControl2.getMock();

    con2.createStatement();
    conControl2.setReturnValue(stmt2, 2);
    stmt2.executeQuery("select name, null as age, birth_date, balance from people");
    stmtControl2.setReturnValue(rs2, 2);
    if (debugEnabled) {
        stmt2.getWarnings();
        stmtControl2.setReturnValue(null, 2);
    }
    stmt2.close();
    stmtControl2.setVoidCallable(2);

    conControl2.replay();
    stmtControl2.replay();

    conControl3 = MockControl.createControl(Connection.class);
    con3 = (Connection) conControl3.getMock();
    con3.isClosed();
    conControl3.setDefaultReturnValue(false);

    rsmdControl3 = MockControl.createControl(ResultSetMetaData.class);
    rsmd3 = (ResultSetMetaData) rsmdControl3.getMock();
    rsmd3.getColumnCount();
    rsmdControl3.setReturnValue(4, 1);
    rsmd3.getColumnLabel(1);
    rsmdControl3.setReturnValue("Last Name", 1);
    rsmd3.getColumnLabel(2);
    rsmdControl3.setReturnValue("age", 1);
    rsmd3.getColumnLabel(3);
    rsmdControl3.setReturnValue("birth_date", 1);
    rsmd3.getColumnLabel(4);
    rsmdControl3.setReturnValue("balance", 1);
    rsmdControl3.replay();

    rsControl3 = MockControl.createControl(ResultSet.class);
    rs3 = (ResultSet) rsControl3.getMock();
    rs3.getMetaData();
    rsControl3.setReturnValue(rsmd3, 1);
    rs3.next();
    rsControl3.setReturnValue(true, 1);
    rs3.getString(1);
    rsControl3.setReturnValue("Gagarin", 1);
    rs3.wasNull();
    rsControl3.setReturnValue(false, 1);
    rs3.getLong(2);
    rsControl3.setReturnValue(22, 1);
    rs3.getTimestamp(3);
    rsControl3.setReturnValue(new Timestamp(1221222L), 1);
    rs3.getBigDecimal(4);
    rsControl3.setReturnValue(new BigDecimal("1234.56"), 1);
    rs3.next();
    rsControl3.setReturnValue(false, 1);
    rs3.close();
    rsControl3.setVoidCallable(1);
    rsControl3.replay();

    stmtControl3 = MockControl.createControl(Statement.class);
    stmt3 = (Statement) stmtControl3.getMock();

    con3.createStatement();
    conControl3.setReturnValue(stmt3, 1);
    stmt3.executeQuery("select last_name as \"Last Name\", age, birth_date, balance from people");
    stmtControl3.setReturnValue(rs3, 1);
    if (debugEnabled) {
        stmt3.getWarnings();
        stmtControl3.setReturnValue(null, 1);
    }
    stmt3.close();
    stmtControl3.setVoidCallable(1);

    conControl3.replay();
    stmtControl3.replay();

    jdbcTemplate = new JdbcTemplate();
    jdbcTemplate.setDataSource(new SingleConnectionDataSource(con, false));
    jdbcTemplate.setExceptionTranslator(new SQLStateSQLExceptionTranslator());
    jdbcTemplate.afterPropertiesSet();

    jdbcTemplate2 = new JdbcTemplate();
    jdbcTemplate2.setDataSource(new SingleConnectionDataSource(con2, false));
    jdbcTemplate2.setExceptionTranslator(new SQLStateSQLExceptionTranslator());
    jdbcTemplate2.afterPropertiesSet();

    jdbcTemplate3 = new JdbcTemplate();
    jdbcTemplate3.setDataSource(new SingleConnectionDataSource(con3, false));
    jdbcTemplate3.setExceptionTranslator(new SQLStateSQLExceptionTranslator());
    jdbcTemplate3.afterPropertiesSet();
}

From source file:org.springframework.jdbc.core.JdbcTemplateTests.java

public void testLeaveConnectionOpenOnRequest() throws Exception {
    String sql = "SELECT ID, FORENAME FROM CUSTMR WHERE ID < 3";

    MockControl ctrlResultSet = MockControl.createControl(ResultSet.class);
    ResultSet mockResultSet = (ResultSet) ctrlResultSet.getMock();
    ctrlResultSet = MockControl.createControl(ResultSet.class);
    mockResultSet = (ResultSet) ctrlResultSet.getMock();
    mockResultSet.next();//from   w  ww. j a v a2 s  . c  o m
    ctrlResultSet.setReturnValue(false);
    mockResultSet.close();
    ctrlResultSet.setVoidCallable();

    MockControl ctrlStatement = MockControl.createControl(PreparedStatement.class);
    PreparedStatement mockStatement = (PreparedStatement) ctrlStatement.getMock();
    ctrlStatement = MockControl.createControl(PreparedStatement.class);
    mockStatement = (PreparedStatement) ctrlStatement.getMock();
    mockStatement.executeQuery(sql);
    ctrlStatement.setReturnValue(mockResultSet);
    if (debugEnabled) {
        mockStatement.getWarnings();
        ctrlStatement.setReturnValue(null);
    }
    mockStatement.close();
    ctrlStatement.setVoidCallable();

    mockConnection.isClosed();
    ctrlConnection.setReturnValue(false, 2);
    mockConnection.createStatement();
    ctrlConnection.setReturnValue(mockStatement);
    // if close is called entire test will fail
    mockConnection.close();
    ctrlConnection.setDefaultThrowable(new RuntimeException());

    ctrlResultSet.replay();
    ctrlStatement.replay();
    replay();

    SingleConnectionDataSource scf = new SingleConnectionDataSource(mockDataSource.getConnection(), false);
    JdbcTemplate template2 = new JdbcTemplate(scf, false);
    RowCountCallbackHandler rcch = new RowCountCallbackHandler();
    template2.query(sql, rcch);

    ctrlResultSet.verify();
    ctrlStatement.verify();
}

From source file:org.springframework.jdbc.core.RowMapperTests.java

protected void setUp() throws SQLException {
    conControl = MockControl.createControl(Connection.class);
    con = (Connection) conControl.getMock();
    con.isClosed();//from   www.j  a  v a  2 s. c o  m
    conControl.setDefaultReturnValue(false);

    rsControl = MockControl.createControl(ResultSet.class);
    rs = (ResultSet) rsControl.getMock();
    rs.next();
    rsControl.setReturnValue(true, 1);
    rs.getString(1);
    rsControl.setReturnValue("tb1", 1);
    rs.getInt(2);
    rsControl.setReturnValue(1, 1);
    rs.next();
    rsControl.setReturnValue(true, 1);
    rs.getString(1);
    rsControl.setReturnValue("tb2", 1);
    rs.getInt(2);
    rsControl.setReturnValue(2, 1);
    rs.next();
    rsControl.setReturnValue(false, 1);
    rs.close();
    rsControl.setVoidCallable(1);
    rsControl.replay();

    jdbcTemplate = new JdbcTemplate();
    jdbcTemplate.setDataSource(new SingleConnectionDataSource(con, false));
    jdbcTemplate.setExceptionTranslator(new SQLStateSQLExceptionTranslator());
    jdbcTemplate.afterPropertiesSet();
}

From source file:ru.org.linux.site.Message.java

public boolean updateMessageText(Connection db, User editor, List<String> newTags) throws SQLException {
    SingleConnectionDataSource scds = new SingleConnectionDataSource(db, true);

    PreparedStatement pstGet = db.prepareStatement(
            "SELECT message,title FROM msgbase JOIN topics ON msgbase.id=topics.id WHERE topics.id=? FOR UPDATE");

    pstGet.setInt(1, msgid);/*from   w w  w  .j  a va2s.co m*/
    ResultSet rs = pstGet.executeQuery();
    if (!rs.next()) {
        throw new RuntimeException("Can't fetch previous message text");
    }

    String oldMessage = rs.getString("message");
    String oldTitle = rs.getString("title");

    rs.close();
    pstGet.close();

    List<String> oldTags = Tags.getMessageTags(db, msgid);

    EditInfoDTO editInfo = new EditInfoDTO();

    editInfo.setMsgid(msgid);
    editInfo.setEditor(editor.getId());

    boolean modified = false;

    SimpleJdbcTemplate jdbcTemplate = new SimpleJdbcTemplate(scds);

    if (!oldMessage.equals(message)) {
        editInfo.setOldmessage(oldMessage);
        modified = true;

        jdbcTemplate.update("UPDATE msgbase SET message=:message WHERE id=:msgid",
                ImmutableMap.of("message", message, "msgid", msgid));
    }

    if (!oldTitle.equals(title)) {
        modified = true;
        editInfo.setOldtitle(oldTitle);

        jdbcTemplate.update("UPDATE topics SET title=:title WHERE id=:id",
                ImmutableMap.of("title", title, "id", msgid));
    }

    if (newTags != null) {
        boolean modifiedTags = Tags.updateTags(db, msgid, newTags);

        if (modifiedTags) {
            editInfo.setOldtags(Tags.toString(oldTags));
            Tags.updateCounters(db, oldTags, newTags);
            modified = true;
        }
    }

    if (modified) {
        SimpleJdbcInsert insert = new SimpleJdbcInsert(scds).withTableName("edit_info").usingColumns("msgid",
                "editor", "oldmessage", "oldtitle", "oldtags");

        insert.execute(new BeanPropertySqlParameterSource(editInfo));
    }

    return modified;
}

From source file:ru.org.linux.site.Message.java

public List<EditInfoDTO> loadEditInfo(Connection db) {
    SingleConnectionDataSource scds = new SingleConnectionDataSource(db, true);

    SimpleJdbcTemplate jdbcTemplate = new SimpleJdbcTemplate(scds);

    List<EditInfoDTO> list = jdbcTemplate.query("SELECT * FROM edit_info WHERE msgid=? ORDER BY id DESC",
            BeanPropertyRowMapper.newInstance(EditInfoDTO.class), msgid);

    return ImmutableList.copyOf(list);
}