本文整理汇总了Java中com.taobao.tddl.group.jdbc.TGroupDataSource.getConnection方法的典型用法代码示例。如果您正苦于以下问题:Java TGroupDataSource.getConnection方法的具体用法?Java TGroupDataSource.getConnection怎么用?Java TGroupDataSource.getConnection使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.taobao.tddl.group.jdbc.TGroupDataSource
的用法示例。
在下文中一共展示了TGroupDataSource.getConnection方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: testThreadLocalDataSourceIndex
import com.taobao.tddl.group.jdbc.TGroupDataSource; //导入方法依赖的package包/类
@Test
public void testThreadLocalDataSourceIndex() throws Exception {
try {
TGroupDataSource ds = new TGroupDataSource(GROUP0, APPNAME);
MockServer.setConfigInfo(ds.getFullDbGroupKey(), DSKEY0 + ":rw" + "," + DSKEY1 + ":r");
ds.init();
ThreadLocalMap.put(ThreadLocalString.DATASOURCE_INDEX, 0);
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
assertEquals(stmt.executeUpdate("insert into tddl_test_0000(id,name) values(100,'str')"), 1);
ResultSet rs = stmt.executeQuery("select id,name from tddl_test_0000 where id=100");
assertTrue(rs.next());
// 如果指定了index,忽略rw限制
ThreadLocalMap.put(ThreadLocalString.DATASOURCE_INDEX, 1);
assertEquals(stmt.executeUpdate("insert into tddl_test_0000(id,name) values(100,'str')"), 1);
rs = stmt.executeQuery("select count(*) from tddl_test_0000 where id=100");
assertTrue(rs.next());
assertEquals(rs.getInt(1), 1);
stmt.close();
conn.close();
} finally {
ThreadLocalMap.put(ThreadLocalString.DATASOURCE_INDEX, null);
}
}
示例2: testGroupDataSourceRouteHelper
import com.taobao.tddl.group.jdbc.TGroupDataSource; //导入方法依赖的package包/类
@Test
public void testGroupDataSourceRouteHelper() throws Exception {
try {
TGroupDataSource ds = new TGroupDataSource(GROUP0, APPNAME);
MockServer.setConfigInfo(ds.getFullDbGroupKey(), DSKEY0 + ":rw" + "," + DSKEY1 + ":r");
ds.init();
GroupDataSourceRouteHelper.executeByGroupDataSourceIndex(0);
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
assertEquals(stmt.executeUpdate("insert into tddl_test_0000(id,name) values(100,'str')"), 1);
ResultSet rs = stmt.executeQuery("select id,name from tddl_test_0000 where id=100");
assertTrue(rs.next());
// 如果指定了index,忽略rw限制
ThreadLocalMap.put(ThreadLocalString.DATASOURCE_INDEX, 1);
assertEquals(stmt.executeUpdate("insert into tddl_test_0000(id,name) values(100,'str')"), 1);
rs = stmt.executeQuery("select count(*) from tddl_test_0000 where id=100");
assertTrue(rs.next());
assertEquals(rs.getInt(1), 1);
stmt.close();
conn.close();
} finally {
ThreadLocalMap.put(ThreadLocalString.DATASOURCE_INDEX, null);
}
}
示例3: javax_sql_DataSource_api_support
import com.taobao.tddl.group.jdbc.TGroupDataSource; //导入方法依赖的package包/类
@Test
public void javax_sql_DataSource_api_support() throws Exception {
TGroupDataSource ds = new TGroupDataSource();
assertEquals(ds.getLoginTimeout(), 0);
assertEquals(ds.getLogWriter(), null);
PrintWriter writer = new PrintWriter(System.out);
ds.setLoginTimeout(100);
ds.setLogWriter(writer);
assertEquals(ds.getLoginTimeout(), 100);
assertEquals(ds.getLogWriter(), writer);
Connection conn = ds.getConnection();
assertTrue((conn instanceof TGroupConnection));
conn = ds.getConnection("username", "password");
assertTrue((conn instanceof TGroupConnection));
}
示例4: testCrud_Read
import com.taobao.tddl.group.jdbc.TGroupDataSource; //导入方法依赖的package包/类
private void testCrud_Read(TGroupDataSource ds) throws SQLException {
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
assertEquals(stmt.executeUpdate("insert into tddl_test_0000(id,name,gmt_create,gmt_modified) values(100,'str',now(),now())"),
1);
// 在只写库上更新后,会保留写连接,
// 但是因为写连接对应的数据源被配置成只写,所以接下来的读操作不允许在写连接上进行
// 因为db2,db3都没有数据,所以rs.next()返回false
ResultSet rs = stmt.executeQuery("select id,name from tddl_test_0000 where id=100");
assertFalse(rs.next());
rs.close();
assertEquals(stmt.executeUpdate("delete from tddl_test_0000 where id=100"), 1);
stmt.close();
conn.close();
}
示例5: adjustUpdate
import com.taobao.tddl.group.jdbc.TGroupDataSource; //导入方法依赖的package包/类
/**
* 更新
*
* @param index
* @param value
* @param name
* @throws SequenceException
* @throws SQLException
*/
private void adjustUpdate(int index, long value, String name) throws SequenceException, SQLException {
long newValue = (value - value % outStep) + outStep + index * innerStep;// 设置成新的调整值
TGroupDataSource tGroupDataSource = (TGroupDataSource) dataSourceMap.get(dbGroupKeys.get(index));
Connection conn = null;
PreparedStatement stmt = null;
// ResultSet rs = null;
try {
conn = tGroupDataSource.getConnection();
stmt = conn.prepareStatement(getUpdateSql());
stmt.setLong(1, newValue);
stmt.setTimestamp(2, new Timestamp(System.currentTimeMillis()));
stmt.setString(3, name);
stmt.setLong(4, value);
GroupDataSourceRouteHelper.executeByGroupDataSourceIndex(0);
int affectedRows = stmt.executeUpdate();
if (affectedRows == 0) {
throw new SequenceException("faild to auto adjust init value at " + name + " update affectedRow =0");
}
logger.info(dbGroupKeys.get(index) + "更新初值成功!" + "sequence Name:" + name + "更新过程:" + value + "-->"
+ newValue);
} catch (SQLException e) { // 吃掉SQL异常,抛Sequence异常
logger.error("由于SQLException,更新初值自适应失败!dbGroupIndex:" + dbGroupKeys.get(index) + ",sequence Name:" + name
+ "更新过程:" + value + "-->" + newValue, e);
throw new SequenceException(e, "由于SQLException,更新初值自适应失败!dbGroupIndex:" + dbGroupKeys.get(index)
+ ",sequence Name:" + name + "更新过程:" + value + "-->" + newValue);
} finally {
closeDbResource(null, stmt, conn);
}
}
示例6: adjustInsert
import com.taobao.tddl.group.jdbc.TGroupDataSource; //导入方法依赖的package包/类
/**
* 插入新值
*
* @param index
* @param name
* @return
* @throws SequenceException
* @throws SQLException
*/
private void adjustInsert(int index, String name) throws SequenceException, SQLException {
TGroupDataSource tGroupDataSource = (TGroupDataSource) dataSourceMap.get(dbGroupKeys.get(index));
long newValue = index * innerStep;
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
conn = tGroupDataSource.getConnection();
stmt = conn.prepareStatement(getInsertSql());
stmt.setString(1, name);
stmt.setLong(2, newValue);
stmt.setTimestamp(3, new Timestamp(System.currentTimeMillis()));
GroupDataSourceRouteHelper.executeByGroupDataSourceIndex(0);
int affectedRows = stmt.executeUpdate();
if (affectedRows == 0) {
throw new SequenceException("faild to auto adjust init value at " + name + " update affectedRow =0");
}
logger.info(dbGroupKeys.get(index) + " name:" + name + "插入初值:" + name + "value:" + newValue);
} catch (SQLException e) {
logger.error("由于SQLException,插入初值自适应失败!dbGroupIndex:" + dbGroupKeys.get(index) + ",sequence Name:" + name
+ " value:" + newValue, e);
throw new SequenceException(e, "由于SQLException,插入初值自适应失败!dbGroupIndex:" + dbGroupKeys.get(index)
+ ",sequence Name:" + name + " value:" + newValue);
} finally {
closeDbResource(rs, stmt, conn);
}
}
示例7: main
import com.taobao.tddl.group.jdbc.TGroupDataSource; //导入方法依赖的package包/类
public static void main(String[] args) throws Exception {
TGroupDataSource ds = new TGroupDataSource();
// init a datasource with dynamic config on diamond
ds.setAppName("ICBU_PB_METADATA_TEST_APP");
ds.setDbGroupKey("PBSERVER_GROUP");
ds.init();
System.out.println("init done");
Connection conn = ds.getConnection();
PreparedStatement ps = conn.prepareStatement("select * from auks_task_detail_normal");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
StringBuilder sb = new StringBuilder();
int count = rs.getMetaData().getColumnCount();
for (int i = 1; i <= count; i++) {
String key = rs.getMetaData().getColumnLabel(i);
Object val = rs.getObject(i);
sb.append("[" + rs.getMetaData().getTableName(i) + "." + key + "->" + val + "]");
}
System.out.println(sb.toString());
}
rs.close();
ps.close();
conn.close();
System.out.println("query done");
}
示例8: adjustUpdate
import com.taobao.tddl.group.jdbc.TGroupDataSource; //导入方法依赖的package包/类
/**
* 更新
*
* @param index
* @param value
* @param name
* @throws SequenceException
* @throws SQLException
*/
private void adjustUpdate(int index, long value, String name) throws SequenceException, SQLException {
long newValue = (value - value % outStep) + outStep + index * innerStep;// 设置成新的调整值
TGroupDataSource tGroupDataSource = (TGroupDataSource) dataSourceMap.get(dbGroupKeys.get(index));
Connection conn = null;
PreparedStatement stmt = null;
// ResultSet rs = null;
try {
conn = tGroupDataSource.getConnection();
stmt = conn.prepareStatement(getUpdateSql());
stmt.setLong(1, newValue);
stmt.setTimestamp(2, new Timestamp(System.currentTimeMillis()));
stmt.setString(3, name);
stmt.setLong(4, value);
GroupDataSourceRouteHelper.executeByGroupDataSourceIndex(0);
int affectedRows = stmt.executeUpdate();
if (affectedRows == 0) {
throw new SequenceException("faild to auto adjust init value at " + name + " update affectedRow =0");
}
logger.info(dbGroupKeys.get(index) + "更新初值成功!" + "sequence Name:" + name + "更新过程:" + value + "-->"
+ newValue);
} catch (SQLException e) { // 吃掉SQL异常,抛Sequence异常
logger.error("由于SQLException,更新初值自适应失败!dbGroupIndex:" + dbGroupKeys.get(index) + ",sequence Name:" + name
+ "更新过程:" + value + "-->" + newValue, e);
throw new SequenceException("由于SQLException,更新初值自适应失败!dbGroupIndex:" + dbGroupKeys.get(index)
+ ",sequence Name:" + name + "更新过程:" + value + "-->" + newValue, e);
} finally {
closeDbResource(null, stmt, conn);
}
}
示例9: adjustInsert
import com.taobao.tddl.group.jdbc.TGroupDataSource; //导入方法依赖的package包/类
/**
* 插入新值
*
* @param index
* @param name
* @return
* @throws SequenceException
* @throws SQLException
*/
private void adjustInsert(int index, String name) throws SequenceException, SQLException {
TGroupDataSource tGroupDataSource = (TGroupDataSource) dataSourceMap.get(dbGroupKeys.get(index));
long newValue = index * innerStep;
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
conn = tGroupDataSource.getConnection();
stmt = conn.prepareStatement(getInsertSql());
stmt.setString(1, name);
stmt.setLong(2, newValue);
stmt.setTimestamp(3, new Timestamp(System.currentTimeMillis()));
GroupDataSourceRouteHelper.executeByGroupDataSourceIndex(0);
int affectedRows = stmt.executeUpdate();
if (affectedRows == 0) {
throw new SequenceException("faild to auto adjust init value at " + name + " update affectedRow =0");
}
logger.info(dbGroupKeys.get(index) + " name:" + name + "插入初值:" + name + "value:" + newValue);
} catch (SQLException e) {
logger.error("由于SQLException,插入初值自适应失败!dbGroupIndex:" + dbGroupKeys.get(index) + ",sequence Name:" + name
+ " value:" + newValue, e);
throw new SequenceException("由于SQLException,插入初值自适应失败!dbGroupIndex:" + dbGroupKeys.get(index)
+ ",sequence Name:" + name + " value:" + newValue, e);
} finally {
closeDbResource(rs, stmt, conn);
}
}
示例10: adjust
import com.taobao.tddl.group.jdbc.TGroupDataSource; //导入方法依赖的package包/类
/**
* <pre>
* 检查并初试某个sequence。
*
* 1、如果sequece不处在,插入值,并初始化值。
* 2、如果已经存在,但有重叠,重新生成。
* 3、如果已经存在,且无重叠。
*
* @throws SequenceException
* </pre>
*/
public void adjust(String name) throws SequenceException, SQLException {
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
for (int i = 0; i < dbGroupKeys.size(); i++) {
if (dbGroupKeys.get(i).toUpperCase().endsWith("-OFF"))// 已经关掉,不处理
{
continue;
}
TGroupDataSource tGroupDataSource = (TGroupDataSource) dataSourceMap.get(dbGroupKeys.get(i));
try {
conn = tGroupDataSource.getConnection();
stmt = conn.prepareStatement(getSelectSql());
stmt.setString(1, name);
GroupDataSourceRouteHelper.executeByGroupDataSourceIndex(0);
rs = stmt.executeQuery();
int item = 0;
while (rs.next()) {
item++;
long val = rs.getLong(this.getValueColumnName());
if (!check(i, val)) // 检验初值
{
if (this.isAdjust()) {
this.adjustUpdate(i, val, name);
} else {
logger.error("数据库中配置的初值出错!请调整你的数据库,或者启动adjust开关");
throw new SequenceException("数据库中配置的初值出错!请调整你的数据库,或者启动adjust开关");
}
}
}
if (item == 0)// 不存在,插入这条记录
{
if (this.isAdjust()) {
this.adjustInsert(i, name);
} else {
logger.error("数据库中未配置该sequence!请往数据库中插入sequence记录,或者启动adjust开关");
throw new SequenceException("数据库中未配置该sequence!请往数据库中插入sequence记录,或者启动adjust开关");
}
}
} catch (SQLException e) {// 吞掉SQL异常,我们允许不可用的库存在
logger.error("初值校验和自适应过程中出错.", e);
throw e;
} finally {
closeDbResource(rs, stmt, conn);
}
}
}
示例11: main
import com.taobao.tddl.group.jdbc.TGroupDataSource; //导入方法依赖的package包/类
public static void main(String[] args) throws TddlException, SQLException {
TGroupDataSource ds = new TGroupDataSource();
ds.setDbGroupKey("CBU_WORKOPERATIONS1_TEST_GROUP");
ds.setAppName("CBU_WORKOPERATIONS_TEST_APP");
// ds.setRuleFile("rule.xml");
//
// Map cp = new HashMap();
// cp.put("ALLOW_TEMPORARY_TABLE", "True");
// cp.put(ConnectionProperties.TEMP_TABLE_DIR, ".\\temp\\");
// cp.put(ConnectionProperties.TEMP_TABLE_CUT_ROWS, false);
// cp.put(ConnectionProperties.TEMP_TABLE_MAX_ROWS, 100);
// ds.setConnectionProperties(cp);
ds.init();
System.out.println("init done");
long start = System.currentTimeMillis();
Connection conn = ds.getConnection();
PreparedStatement ps = conn.prepareStatement("SELECT a.custId, a.id,b.adgroupid, SUM(c.cost) / SUM(c.click) AS ppc,c.thedate, c.memberid, c.campaignid, c.productlineid, c.adgroupid, SUM(c.impression), SUM(c.cost), SUM(c.click), SUM(c.click) / SUM(c.impression) AS ctr, b.title, a.onlinestate, a.reason FROM Lunaadgroup a join lunaadgroupinfo b on a.id=b.adgroupid LEFT JOIN rpt_solar_adgroup_ob c ON a.id = c.adgroupid where a.custid='1102000884' and b.custid='1102000884' GROUP BY c.thedate, c.memberid, c.campaignid, c.productlineid, c.adgroupid HAVING ppc > 1 ORDER BY ppc DESC");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
StringBuilder sb = new StringBuilder();
int count = rs.getMetaData().getColumnCount();
for (int i = 1; i <= count; i++) {
String key = rs.getMetaData().getColumnLabel(i);
Object val = rs.getObject(i);
sb.append("[" + rs.getMetaData().getTableName(i) + "." + key + "->" + val + "]");
}
System.out.println(sb.toString());
}
rs.close();
ps.close();
conn.close();
System.out.println("done " + (System.currentTimeMillis() - start));
}
示例12: main
import com.taobao.tddl.group.jdbc.TGroupDataSource; //导入方法依赖的package包/类
public static void main(String[] args) throws TddlException, SQLException {
TGroupDataSource ds = new TGroupDataSource();
// init a datasource with dynamic config on diamond
ds.setAppName("wap");
ds.setDbGroupKey("wap_group");
ds.init();
System.out.println("init done");
Connection conn = ds.getConnection();
// insert a record
// conn.prepareStatement("replace into sample_table (id,name,address) values (1,'sun','hz')").executeUpdate();
// System.out.println("insert done");
// select all records
PreparedStatement ps = conn.prepareStatement("/*+TDDL({\"type\":\"direct\",\"realtabs\":[traa],\"dbid\":\"tddl5_sample_group\",\"vtab\":\"sample_table\"})*/ SELECT * from sample_table");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
StringBuilder sb = new StringBuilder();
int count = rs.getMetaData().getColumnCount();
for (int i = 1; i <= count; i++) {
String key = rs.getMetaData().getColumnLabel(i);
Object val = rs.getObject(i);
sb.append("[" + rs.getMetaData().getTableName(i) + "." + key + "->" + val + "]");
}
System.out.println(sb.toString());
}
rs.close();
ps.close();
conn.close();
System.out.println("query done");
}