提交 dcb0c143 编写于 作者: H haocao

Update sharding-jdbc-transaction-example codes.

上级 17e31440
......@@ -45,9 +45,38 @@ public final class TransactionMain {
public static void main(final String[] args) throws SQLException {
// CHECKSTYLE:ON
DataSource dataSource = getShardingDataSource();
dropTable(dataSource);
createTable(dataSource);
insert(dataSource);
updateFailure(dataSource);
}
private static void createTable(final DataSource dataSource) throws SQLException {
executeUpdate(dataSource, "CREATE TABLE IF NOT EXISTS t_order (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(50), PRIMARY KEY (order_id))");
executeUpdate(dataSource, "CREATE TABLE IF NOT EXISTS t_order_item (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, PRIMARY KEY (item_id))");
}
private static void dropTable(final DataSource dataSource) throws SQLException {
executeUpdate(dataSource, "DROP TABLE IF EXISTS t_order_item");
executeUpdate(dataSource, "DROP TABLE IF EXISTS t_order");
}
private static void executeUpdate(final DataSource dataSource, final String sql) throws SQLException {
try (
Connection conn = dataSource.getConnection();
PreparedStatement preparedStatement = conn.prepareStatement(sql)) {
preparedStatement.executeUpdate();
}
}
private static void insert(final DataSource dataSource) throws SQLException {
String sql = "INSERT INTO t_order VALUES (1000, 10, 'INIT');";
try (Connection conn = dataSource.getConnection();
PreparedStatement preparedStatement = conn.prepareStatement(sql)) {
preparedStatement.executeUpdate();
}
}
private static void updateFailure(final DataSource dataSource) throws SQLException {
String sql1 = "UPDATE t_order SET status='UPDATE_1' WHERE user_id=10 AND order_id=1000";
String sql2 = "UPDATE t_order SET not_existed_column=1 WHERE user_id=1 AND order_id=?";
......
DROP SCHEMA IF EXISTS `trans_log`;
DROP SCHEMA IF EXISTS `ds_trans_0`;
DROP SCHEMA IF EXISTS `ds_trans_1`;
CREATE SCHEMA IF NOT EXISTS `trans_log`;
CREATE SCHEMA IF NOT EXISTS `ds_trans_0`;
CREATE SCHEMA IF NOT EXISTS `ds_trans_1`;
CREATE TABLE IF NOT EXISTS `ds_trans_0`.`t_order_0` (`order_id` INT NOT NULL, `user_id` INT NOT NULL, `status` VARCHAR(50), PRIMARY KEY (`order_id`));
CREATE TABLE IF NOT EXISTS `ds_trans_0`.`t_order_1` (`order_id` INT NOT NULL, `user_id` INT NOT NULL, `status` VARCHAR(50), PRIMARY KEY (`order_id`));
CREATE TABLE IF NOT EXISTS `ds_trans_0`.`t_order_item_0` (`item_id` INT NOT NULL, `order_id` INT NOT NULL, `user_id` INT NOT NULL, PRIMARY KEY (`item_id`));
CREATE TABLE IF NOT EXISTS `ds_trans_0`.`t_order_item_1` (`item_id` INT NOT NULL, `order_id` INT NOT NULL, `user_id` INT NOT NULL, PRIMARY KEY (`item_id`));
CREATE TABLE IF NOT EXISTS `ds_trans_1`.`t_order_0` (`order_id` INT NOT NULL, `user_id` INT NOT NULL, `status` VARCHAR(50), PRIMARY KEY (`order_id`));
CREATE TABLE IF NOT EXISTS `ds_trans_1`.`t_order_1` (`order_id` INT NOT NULL, `user_id` INT NOT NULL, `status` VARCHAR(50), PRIMARY KEY (`order_id`));
CREATE TABLE IF NOT EXISTS `ds_trans_1`.`t_order_item_0` (`item_id` INT NOT NULL, `order_id` INT NOT NULL, `user_id` INT NOT NULL, PRIMARY KEY (`item_id`));
CREATE TABLE IF NOT EXISTS `ds_trans_1`.`t_order_item_1` (`item_id` INT NOT NULL, `order_id` INT NOT NULL, `user_id` INT NOT NULL, PRIMARY KEY (`item_id`));
INSERT INTO `ds_trans_0`.`t_order_0` VALUES (1000, 10, 'INIT');
INSERT INTO `ds_trans_0`.`t_order_0` VALUES (1002, 10, 'INIT');
INSERT INTO `ds_trans_0`.`t_order_0` VALUES (1004, 10, 'INIT');
INSERT INTO `ds_trans_0`.`t_order_0` VALUES (1006, 10, 'INIT');
INSERT INTO `ds_trans_0`.`t_order_0` VALUES (1008, 10, 'INIT');
INSERT INTO `ds_trans_0`.`t_order_item_0` VALUES (100001, 1000, 10);
INSERT INTO `ds_trans_0`.`t_order_item_0` VALUES (100201, 1002, 10);
INSERT INTO `ds_trans_0`.`t_order_item_0` VALUES (100401, 1004, 10);
INSERT INTO `ds_trans_0`.`t_order_item_0` VALUES (100601, 1006, 10);
INSERT INTO `ds_trans_0`.`t_order_item_0` VALUES (100801, 1008, 10);
INSERT INTO `ds_trans_0`.`t_order_1` VALUES (1001, 10, 'INIT');
INSERT INTO `ds_trans_0`.`t_order_1` VALUES (1003, 10, 'INIT');
INSERT INTO `ds_trans_0`.`t_order_1` VALUES (1005, 10, 'INIT');
INSERT INTO `ds_trans_0`.`t_order_1` VALUES (1007, 10, 'INIT');
INSERT INTO `ds_trans_0`.`t_order_1` VALUES (1009, 10, 'INIT');
INSERT INTO `ds_trans_0`.`t_order_item_1` VALUES (100101, 1001, 10);
INSERT INTO `ds_trans_0`.`t_order_item_1` VALUES (100301, 1003, 10);
INSERT INTO `ds_trans_0`.`t_order_item_1` VALUES (100501, 1005, 10);
INSERT INTO `ds_trans_0`.`t_order_item_1` VALUES (100701, 1007, 10);
INSERT INTO `ds_trans_0`.`t_order_item_1` VALUES (100901, 1009, 10);
INSERT INTO `ds_trans_1`.`t_order_0` VALUES (1100, 11, 'INIT');
INSERT INTO `ds_trans_1`.`t_order_0` VALUES (1102, 11, 'INIT');
INSERT INTO `ds_trans_1`.`t_order_0` VALUES (1104, 11, 'INIT');
INSERT INTO `ds_trans_1`.`t_order_0` VALUES (1106, 11, 'INIT');
INSERT INTO `ds_trans_1`.`t_order_0` VALUES (1108, 11, 'INIT');
INSERT INTO `ds_trans_1`.`t_order_item_0` VALUES (110001, 1100, 11);
INSERT INTO `ds_trans_1`.`t_order_item_0` VALUES (110201, 1102, 11);
INSERT INTO `ds_trans_1`.`t_order_item_0` VALUES (110401, 1104, 11);
INSERT INTO `ds_trans_1`.`t_order_item_0` VALUES (110601, 1106, 11);
INSERT INTO `ds_trans_1`.`t_order_item_0` VALUES (110801, 1108, 11);
INSERT INTO `ds_trans_1`.`t_order_1` VALUES (1101, 11, 'INIT');
INSERT INTO `ds_trans_1`.`t_order_1` VALUES (1103, 11, 'INIT');
INSERT INTO `ds_trans_1`.`t_order_1` VALUES (1105, 11, 'INIT');
INSERT INTO `ds_trans_1`.`t_order_1` VALUES (1107, 11, 'INIT');
INSERT INTO `ds_trans_1`.`t_order_1` VALUES (1109, 11, 'INIT');
INSERT INTO `ds_trans_1`.`t_order_item_1` VALUES (110101, 1101, 11);
INSERT INTO `ds_trans_1`.`t_order_item_1` VALUES (110301, 1103, 11);
INSERT INTO `ds_trans_1`.`t_order_item_1` VALUES (110501, 1105, 11);
INSERT INTO `ds_trans_1`.`t_order_item_1` VALUES (110701, 1107, 11);
INSERT INTO `ds_trans_1`.`t_order_item_1` VALUES (110901, 1109, 11);
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册