// Path: src/main/java/com/elong/pb/newdda/client/router/SqlExecutionUnit.java
// public class SqlExecutionUnit {
// 
//     private final String dataSource;
// 
//     private String sql;
// 
//     private SqlAppender sqlAppender;
// 
//     public SqlExecutionUnit(final String dataSource, final SqlAppender sqlAppender) {
//         this.dataSource = dataSource;
//         this.sqlAppender = sqlAppender.cloneBuilder();
//         this.sql = sqlAppender.toSQL();
//     }
// 
//     @Override
//     public int hashCode() {
//         final int prime = 31;
//         int result = 1;
//         result = prime * result + (this.dataSource == null ? 0 : this.dataSource.hashCode());
//         result = prime * result + (this.sql == null ? 0 : this.sql.hashCode());
//         return result;
//     }
// 
//     @Override
//     public String toString() {
//         StringBuilder builder = new StringBuilder();
//         builder.append("route sql to db: [").append(dataSource).append("] sql:[").append(sql).append("]");
//         return builder.toString();
//     }
// 
//     //====================================================set get method start ====================================================
// 
//     public void setSql(String sql) {
//         this.sql = sql;
//     }
// 
//     public String getDataSource() {
//         return dataSource;
//     }
// 
//     public String getSql() {
//         return sql;
//     }
// 
//     //====================================================set get method end  =====================================================
// 
// }


import com.elong.pb.newdda.client.router.SqlExecutionUnit;
import java.sql.PreparedStatement;
import java.util.List;
package com.elong.pb.newdda.client.executor.wrapper;



/**
 * Created by zhangyong on 2016/10/10.
 */
public class PreparedStatementExecutorWrapper {

    private final PreparedStatement preparedStatement;

    private final SqlExecutionUnit sqlExecutionUnit;

    private final List<Object> parameters;

// Path: src/main/java/com/elong/pb/newdda/client/router/SqlExecutionUnit.java
// public class SqlExecutionUnit {
// 
//     private final String dataSource;
// 
//     private String sql;
// 
//     private SqlAppender sqlAppender;
// 
//     public SqlExecutionUnit(final String dataSource, final SqlAppender sqlAppender) {
//         this.dataSource = dataSource;
//         this.sqlAppender = sqlAppender.cloneBuilder();
//         this.sql = sqlAppender.toSQL();
//     }
// 
//     @Override
//     public int hashCode() {
//         final int prime = 31;
//         int result = 1;
//         result = prime * result + (this.dataSource == null ? 0 : this.dataSource.hashCode());
//         result = prime * result + (this.sql == null ? 0 : this.sql.hashCode());
//         return result;
//     }
// 
//     @Override
//     public String toString() {
//         StringBuilder builder = new StringBuilder();
//         builder.append("route sql to db: [").append(dataSource).append("] sql:[").append(sql).append("]");
//         return builder.toString();
//     }
// 
//     //====================================================set get method start ====================================================
// 
//     public void setSql(String sql) {
//         this.sql = sql;
//     }
// 
//     public String getDataSource() {
//         return dataSource;
//     }
// 
//     public String getSql() {
//         return sql;
//     }
// 
//     //====================================================set get method end  =====================================================
// 
// }


// Path: src/main/java/com/elong/pb/newdda/client/executor/wrapper/PreparedStatementExecutorWrapper.java
import com.elong.pb.newdda.client.router.SqlExecutionUnit;
import java.sql.PreparedStatement;
import java.util.List;

package com.elong.pb.newdda.client.executor.wrapper;



/**
 * Created by zhangyong on 2016/10/10.
 */
public class PreparedStatementExecutorWrapper {

    private final PreparedStatement preparedStatement;

    private final SqlExecutionUnit sqlExecutionUnit;

    private final List<Object> parameters;

    public PreparedStatementExecutorWrapper(final PreparedStatement preparedStatement, List<Object> parameters, final SqlExecutionUnit sqlExecutionUnit) {