Java Code Examples for javax.sql.DataSource#getConnection()

The following examples show how to use javax.sql.DataSource#getConnection() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: RegistrationDAO.java    From primefaces-blueprints with The Unlicense 8 votes vote down vote up
public RegistrationDAO() throws SQLException {
	try {
		Context ctx = new InitialContext();
		ds = (DataSource) ctx.lookup("java:comp/env/jdbc/blueprintsdb");
		if (ds == null)
			throw new SQLException("Can't get data source");

		// get database connection
		con = ds.getConnection();

		if (con == null)
			throw new SQLException("Can't get database connection");

	} catch (NamingException e) {
		e.printStackTrace();
	}

}
 
Example 2
Source File: TestDatabase.java    From sis with Apache License 2.0 8 votes vote down vote up
/**
 * Creates a in-memory database on HSQLDB. The database can optionally use a connection pool.
 * The test method can set {@code pooled} to {@code true} if it needs the data to survive when
 * the connection is closed and re-opened.
 *
 * @param  name    the database name (without {@code "jdbc:hsqldb:mem:"} prefix).
 * @param  pooled  whether the database should use a connection pool.
 * @return connection to the test database.
 * @throws SQLException if an error occurred while creating the database.
 *
 * @see <a href="http://hsqldb.org/doc/apidocs/org/hsqldb/jdbc/JDBCDataSource.html">JDBC data source for HSQL</a>
 *
 * @since 1.0
 */
public static TestDatabase createOnHSQLDB(final String name, final boolean pooled) throws SQLException {
    final DataSource ds;
    final JDBCPool pool;
    final String url = "jdbc:hsqldb:mem:".concat(name);
    if (pooled) {
        pool = new JDBCPool();
        pool.setURL(url);
        ds = pool;
    } else {
        final JDBCDataSource simple = new JDBCDataSource();
        simple.setURL(url);
        ds = simple;
        pool = null;
    }
    return new TestDatabase(ds) {
        @Override public void close() throws SQLException {
            try (Connection c = ds.getConnection(); Statement s = c.createStatement()) {
                s.execute("SHUTDOWN");
            }
            if (pool != null) {
                pool.close(2);
            }
        }
    };
}
 
Example 3
Source File: LimitTest.java    From Zebra with Apache License 2.0 6 votes vote down vote up
@Test
public void testLimit2_2() throws Exception {
	DataSource ds = (DataSource) context.getBean("zebraDS");
	Connection conn = null;
	try {
		conn = ds.getConnection();
		PreparedStatement stmt = conn.prepareStatement("select name from test limit 10,?");
		stmt.setInt(1, 5);
		stmt.execute();
		ResultSet rs = stmt.getResultSet();
		List<String> rows = new ArrayList<String>();
		while (rs.next()) {
			rows.add(rs.getString("name"));
		}
		Assert.assertEquals(5, rows.size());
	} catch (Exception e) {
		Assert.fail();
	} finally {
		if (conn != null) {
			conn.close();
		}
	}
}
 
Example 4
Source File: SingleDBPreparedStatementLifeCycleTest.java    From Zebra with Apache License 2.0 6 votes vote down vote up
@Test
public void testMultiRouterResult13_1() throws Exception {
	DataSource ds = (DataSource) context.getBean("zebraDS");
	Connection conn = null;
	try {
		conn = ds.getConnection();
		PreparedStatement stmt = conn.prepareStatement("select sum(score) score from test where id = ?");
		stmt.setInt(1, 1);
		stmt.execute();
		ResultSet rs = stmt.getResultSet();
		List<Long> rows = new ArrayList<Long>();
		while (rs.next()) {
			rows.add(rs.getLong("score"));
		}
		Assert.assertEquals(1, rows.size());
		Assert.assertEquals(5, rows.get(0).intValue());
	} catch (Exception e) {
		Assert.fail();
	} finally {
		if (conn != null) {
			conn.close();
		}
	}
}
 
Example 5
Source File: MultiDBPreparedStatementLifeCycleTest.java    From Zebra with Apache License 2.0 6 votes vote down vote up
@Test
public void testMultiRouterResult4() throws Exception {
    DataSource ds = (DataSource) context.getBean("zebraDS");
    Connection conn = null;
    try {
        conn = ds.getConnection();
        PreparedStatement stmt = conn.prepareStatement("select score from test where id!=1 order by score desc");
        stmt.execute();
        ResultSet rs = stmt.getResultSet();
        List<Integer> rows = new ArrayList<Integer>();
        while (rs.next()) {
            rows.add(rs.getInt("score"));
        }
        Assert.assertEquals(14, rows.size());
        List<Integer> expectedResult = Arrays.asList(new Integer[]{20,8,8,7,7,6,6,5,5,4,3,3,1,1});
        for (int i = 0; i < expectedResult.size(); i++) {
            Assert.assertEquals(expectedResult.get(i).intValue(), rows.get(i).intValue());
        }
    } catch (Exception e) {
        Assert.fail();
    } finally {
        if (conn != null) {
            conn.close();
        }
    }
}
 
Example 6
Source File: MultiDBLifeCycleTest.java    From Zebra with Apache License 2.0 6 votes vote down vote up
@Test
public void testMultiRouterResult11() throws Exception {
	DataSource ds = (DataSource) context.getBean("zebraDS");
	Connection conn = null;
	try {
		conn = ds.getConnection();
		Statement stmt = conn.createStatement();
		stmt.execute("select name from test");
		ResultSet rs = stmt.getResultSet();
		List<String> rows = new ArrayList<String>();
		while (rs.next()) {
			rows.add(rs.getString("name"));
		}
		Assert.assertEquals(17, rows.size());
	} catch (Exception e) {
		Assert.fail();
	} finally {
		if (conn != null) {
			conn.close();
		}
	}
}
 
Example 7
Source File: MigrationIT.java    From digdag with Apache License 2.0 6 votes vote down vote up
/**
 * Check session_attempts_on_site_id_and_state_flags_partial_2 index exists
 * @throws Exception
 */
@Test
public void checkMigration_20190318175338_AddIndexToSessionAttempts()
{
    assumeTrue(server.isRemoteDatabase());

    try {
        server.start();
        DataSource ds = server.getTestDBDataSource();
        Connection con = ds.getConnection();
        con.createStatement().execute("drop index session_attempts_on_site_id_and_state_flags_partial_2");
    }
    catch (Exception e) {
        fail(e.toString());
    }
}
 
Example 8
Source File: HalfCreatedDatabaseTest.java    From spliceengine with GNU Affero General Public License v3.0 6 votes vote down vote up
/**
 * Verify that a user data dir (in this case empty) throws the old message
 * 
 */
public void test_5526()  throws SQLException {
    String mydatadirStr = BaseTestCase.getSystemProperty("derby.system.home") +
            File.separator + "mydatadir";
    File mydatadir = new File(mydatadirStr);
    assertTrue(mydatadir.mkdir());
    DataSource ds = JDBCDataSource.getDataSource(mydatadirStr);
    JDBCDataSource.setBeanProperty(ds, "createDatabase", "create");
    try {
        ds.getConnection();
        fail("Should not be able to create database on existing directory " + mydatadirStr);
    } catch (SQLException se) {
        // should be nested exception XJ041 -> XBM0J (Directory exists)
        assertSQLState("XJ041",se);
        se = se.getNextException();
        assertSQLState("XBM0J",se);
    } finally {
        BaseTestCase.removeDirectory(mydatadir);
    }
    
}
 
Example 9
Source File: Main.java    From sharding-jdbc-1.5.1 with Apache License 2.0 6 votes vote down vote up
private static void printSimpleSelect(final DataSource dataSource) throws SQLException {
    String sql = "SELECT i.* FROM t_order o JOIN t_order_item i ON o.order_id=i.order_id WHERE o.user_id=? AND o.order_id=?";
    try (
            Connection conn = dataSource.getConnection();
            PreparedStatement preparedStatement = conn.prepareStatement(sql)) {
        preparedStatement.setInt(1, 10);
        preparedStatement.setInt(2, 1001);
        try (ResultSet rs = preparedStatement.executeQuery()) {
            while (rs.next()) {
                System.out.println(rs.getInt(1));
                System.out.println(rs.getInt(2));
                System.out.println(rs.getInt(3));
            }
        }
    }
}
 
Example 10
Source File: ShardConcurrencyTest.java    From Zebra with Apache License 2.0 6 votes vote down vote up
@Before
public void init() throws SQLException {
    String sql = "INSERT INTO Tb (id, uid, name) VALUES (?,?,?),(?,?,?),(?,?,?),(?,?,?),(?,?,?),(?,?,?),(?,?,?),(?,?,?),(?,?,?),(?,?,?)";
    DataSource ds = getDataSource();
    Connection conn = ds.getConnection();

    for (int i = 0; i < 8; ++i) {
        PreparedStatement pst = conn.prepareStatement(sql);
        for (int j = 1; j <= 10; ++j) {
            pst.setInt(3*(j-1)+1, j);
            pst.setInt(3*(j-1)+2, j*8+i);
            pst.setString(3*(j-1)+3, "Tb-"+i+"-"+j);
        }
        pst.executeUpdate();
        pst.close();
    }
    conn.close();
}
 
Example 11
Source File: H2Dialect.java    From copper-engine with Apache License 2.0 6 votes vote down vote up
public static void checkAndCreateSchema(DataSource ds) throws SQLException, IOException {
    Connection c = ds.getConnection();
    try {
        if (tablesExist(c)) {
            logger.info("COPPER schema already exists");
            return;
        }
        logger.info("Creating COPPER schema...");
        String sql = getResourceAsString(H2Dialect.class, "/h2/create-schema.sql");
        Statement stmt = c.createStatement();
        try {
            stmt.execute(sql);
        } finally {
            stmt.close();
        }
    } finally {
        c.close();
    }
    logger.info("Created COPPER schema.");
}
 
Example 12
Source File: SingleDBLifeCycleTest.java    From Zebra with Apache License 2.0 6 votes vote down vote up
@Test
public void testDelete() throws Exception {
	DataSource ds = (DataSource) context.getBean("zebraDS");
	Connection conn = null;
	try {
		conn = ds.getConnection();
		Statement stmt = conn.createStatement();
		stmt.execute("delete from test where name='leo0'");
		Statement stmt2 = conn.createStatement();
		stmt2.execute("select name from test where name='leo0'");
		ResultSet rs = stmt2.getResultSet();
		while (rs.next()) {
			Assert.fail();
		}
		Assert.assertTrue(true);

	} catch (Exception e) {
		Assert.fail();
	} finally {
		if (conn != null) {
			conn.close();
		}
	}
}
 
Example 13
Source File: TestServer.java    From light-oauth2 with Apache License 2.0 6 votes vote down vote up
private TestServer() {
    DataSource ds = (DataSource) SingletonServiceFactory.getBean(DataSource.class);
    try (Connection connection = ds.getConnection()) {
        String schemaResourceName = "/create_h2.sql";
        InputStream in = TestServer.class.getResourceAsStream(schemaResourceName);

        if (in == null) {
            throw new RuntimeException("Failed to load resource: " + schemaResourceName);
        }
        InputStreamReader reader = new InputStreamReader(in, UTF_8);
        RunScript.execute(connection, reader);

    } catch (SQLException e) {
        e.printStackTrace();
    }
}
 
Example 14
Source File: DBUtils.java    From FoxBPM with Apache License 2.0 5 votes vote down vote up
public static Connection getConnection(String key){
	DataSource dataSource = getDataSource(key);
	if(dataSource == null){
		throw ExceptionUtil.getException("没有可用的数据源配置!");
	}
	try {
		return dataSource.getConnection();
	} catch (SQLException e) {
		 throw ExceptionUtil.getException("获取数据库连接:"+key+" 出错",e);
	}
}
 
Example 15
Source File: CustomInjection.java    From Android_Code_Arbiter with GNU Lesser General Public License v3.0 5 votes vote down vote up
public void testQueries(DataSource dataSource, String input) throws SQLException {
    String sql = "select * from Users where name = " + input;
    Connection connection = dataSource.getConnection();
    try {
        MySqlWrapper wrapper = new MySqlWrapper(connection);
        ResultSet resultSet = wrapper.executeQuery(sql);
        System.out.println(resultSet.next());
    } finally {
        connection.close();
    }

}
 
Example 16
Source File: AuthenticationTest.java    From gemfirexd-oss with Apache License 2.0 5 votes vote down vote up
protected void assertSystemShutdownOK(
    String dbName, String user, String password)
throws SQLException {
    DataSource ds;
    if (usingEmbedded())
    {
        // we cannot use JDBCDataSource.getDataSource() (which uses the
        // default database name), unless we specifically clear the 
        // databaseName. Otherwise, only the database will be shutdown.
        // The alternative is to use jDBCDataSource.getDatasource(dbName),
        // where dbName is an empty string - this will in the current code
        // be interpreted as a system shutdown.
        
        ds = JDBCDataSource.getDataSource();
        JDBCDataSource.clearStringBeanProperty(ds, "databaseName");
    }
    else 
    {
        // With client, we cannot user clearStringBeanProperty on the  
        // databaseName, that will result in error 08001 - 
        // Required DataSource property databaseName not set.
        // So, we pass an empty string as databaseName, which the current
        // code interprets as a system shutdown.
        ds = JDBCDataSource.getDataSource(dbName);
    }
    
    JDBCDataSource.setBeanProperty(ds, "shutdownDatabase", "shutdown");
    try {
        ds.getConnection(user, password);
        fail("expected system shutdown resulting in XJ015 error");
    } catch (SQLException e) {
        // expect XJ015, system shutdown, on successful shutdown
        assertSQLState("XJ015", e);
    }
}
 
Example 17
Source File: ServicePropertiesFileTest.java    From spliceengine with GNU Affero General Public License v3.0 5 votes vote down vote up
/**
 * Ensures that Derby can handle the case where the backup file already
 * exists when editing the service properties.
 */
public void testBackupWithBackupExisting()
        throws IOException, SQLException {
    // Prepare
    String db = "spfTestBWBE";
    copyDbAs(db);
    assertPresence(true, false);
    // Make sure 'db.storage.logArchiveMode' isn't present already.
    assertEquals(0, grepForToken(LOG_A_MODE, spf));

    // Connect, then enable log archive mode to trigger edit.
    DataSource ds = JDBCDataSource.getDataSource();
    JDBCDataSource.setBeanProperty(ds, "databaseName", "singleUse/" + db);
    Connection con = ds.getConnection();
    // Create the service properties file backup.
    createSPFBackup(true);

    // Trigger service properties file edit.
    Statement stmt = con.createStatement();
    stmt.execute("CALL SYSCS_UTIL.SYSCS_DISABLE_LOG_ARCHIVE_MODE(0)");
    con.close();
    // Shut down the database.
    JDBCDataSource.shutdownDatabase(ds);

    assertNormalPresence();
    assertEquals(1, grepForToken(LOG_A_MODE + "=false", spf));
}
 
Example 18
Source File: DatabaseHelper.java    From Benchmark with GNU General Public License v2.0 5 votes vote down vote up
public static java.sql.Connection getSqlConnection() {
	if (conn == null) {
		try {
			InitialContext ctx = new InitialContext();
			DataSource datasource = (DataSource)ctx.lookup("java:comp/env/jdbc/BenchmarkDB");
			conn = datasource.getConnection();
			conn.setAutoCommit(false);
		} catch (SQLException | NamingException e) {
			System.out.println("Problem with getSqlConnection.");
			e.printStackTrace();
		}
	}
	return conn;
}
 
Example 19
Source File: TransactionTimeOutDUnitTest.java    From gemfirexd-oss with Apache License 2.0 5 votes vote down vote up
public static void runTest8() {
  try {
    Context ctx = cache.getJNDIContext();
    DataSource ds2 = (DataSource) ctx.lookup("java:/SimpleDataSource");
    ds2.getConnection();
    GemFireTransactionDataSource ds = (GemFireTransactionDataSource) ctx
        .lookup("java:/XAPooledDataSource");
    UserTransaction utx = (UserTransaction) ctx
        .lookup("java:/UserTransaction");
    utx.begin();
    Connection conn = ds.getConnection();
    String sql = "create table newTable1 (id integer)";
    Statement sm = conn.createStatement();
    sm.execute(sql);
    utx.setTransactionTimeout(30);
    Thread.sleep(5000);
    utx.setTransactionTimeout(20);
    utx.setTransactionTimeout(10);
    sql = "insert into newTable1  values (1)";
    sm.execute(sql);
    utx.commit();
    sql = "select * from newTable1 where id = 1";
    ResultSet rs = sm.executeQuery(sql);
    if (!rs.next()) fail("Transaction not committed");
    sql = "drop table newTable1";
    sm.execute(sql);
    sm.close();
    conn.close();
  }
  catch (Exception e) {
    fail("Exception occured in test Commit due to " + e);
    e.printStackTrace();
  }
}
 
Example 20
Source File: MultiShardKeyTest.java    From Zebra with Apache License 2.0 4 votes vote down vote up
@Test
public void testMultiSkApi() throws SQLException {
    DataSource ds = getDataSource();
    Connection conn = ds.getConnection();
    Statement st = conn.createStatement();
    ResultSet rs = null;
    Set<TbEntity> expected = null;
    HashSet<String> hintShardColumns = new HashSet<String>();
    HashSet<String> hintShardColumns2 = new HashSet<String>();
    hintShardColumns.add("uid");
    hintShardColumns.add("tid");
    hintShardColumns2.add("tid");

    // table = Tb, sk = uid
    rs = st.executeQuery("SELECT * FROM `Tb` WHERE `uid` IN (0,1,2,3)");
    Set<TbEntity> actual = parseAndCloseResultSet(rs);
    expected = generateEntities(new TbEntity(1, 0, 4, "uid-0"), new TbEntity(1, 1, 4, "uid-1"), new TbEntity(1, 2, 4, "uid-2"), new TbEntity(1, 3, 4, "uid-3"));
    Assert.assertEquals(expected, actual);

    // table = Tb, update tid(auxiliary)
    ShardDataSourceHelper.setHintShardColumn(hintShardColumns2);
    st.execute("UPDATE `Tb` SET `Name` = 'tid-update-2' WHERE `tid` = 2");
    rs = st.executeQuery("SELECT * FROM  `Tb` WHERE `tid` = 2");
    actual = parseAndCloseResultSet(rs);
    expected = generateEntities(new TbEntity(2, 4, 2, "tid-update-2"));
    Assert.assertEquals(expected, actual);


    // table = Tb, sk = uid + tid
    actual = new HashSet<TbEntity>();
    for (int i = 0; i <= 4; ++i) {
        ShardDataSourceHelper.setHintShardColumn(hintShardColumns);
        rs = st.executeQuery("SELECT * FROM `Tb` WHERE `uid` = " + i + " AND `tid` = 1");
        actual.addAll(parseAndCloseResultSet(rs));
    }
    expected = generateEntities(new TbEntity(1, 1, 1, "ut-11"), new TbEntity(1, 2, 1, "ut-21"), new TbEntity(1, 3, 1, "ut-31"), new TbEntity(1, 4, 1, "ut-41"));
    Assert.assertEquals(expected, actual);

    // table = Tbut, sk = uid + tid
    int[][] ut = new int[][] { { 4, 4, 5, 5 }, { 0, 1, 0, 1 } };
    actual = new HashSet<TbEntity>();
    for (int i = 0; i < 4; ++i) {
        ShardDataSourceHelper.setHintShardColumn(hintShardColumns);
        rs = st.executeQuery("/*+zebra:sk=uid*/SELECT * FROM `Tbut` WHERE `uid` = " + ut[0][i] + " AND `tid` = " + ut[1][i]);
        actual.addAll(parseAndCloseResultSet(rs));
    }
    expected = generateEntities(new TbEntity(2, 4, 0, "u_t-00"), new TbEntity(2, 4, 1, "u_t-01"), new TbEntity(2, 5, 0, "u_t-10"), new TbEntity(2, 5, 1, "u_t-11"));
    Assert.assertEquals(expected, actual);

    st.close();
    conn.close();
}