package com.codingapi.tx.datasource.relational.txc;
import com.codingapi.tx.datasource.relational.txc.parser.ExecutePaser;
import com.codingapi.tx.datasource.relational.txc.parser.SQLType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.InputStream;
import java.io.Reader;
import java.math.BigDecimal;
import java.net.URL;
import java.sql.Array;
import java.sql.Blob;
import java.sql.Clob;
import java.sql.Date;
import java.sql.NClob;
import java.sql.ParameterMetaData;
import java.sql.PreparedStatement;
import java.sql.Ref;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.RowId;
import java.sql.SQLException;
import java.sql.SQLXML;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
/**
* [类描述]
*
* @author caican
* @date 17/11/28
* @title [confluence页面的title]
*/
public class TxcPreparedStatement extends TxcStatement implements PreparedStatement {
private static final Logger logger = LoggerFactory.getLogger(TxcPreparedStatement.class);
public TxcPreparedStatement(PreparedStatement localPreparedStatement, AbstractTxcConnection abstractTxcConnection,
String sql) {
super(localPreparedStatement, abstractTxcConnection);
this.sql = sql;
}
/**
* 把这个参数缓存下来 有什么用?
*/
private List<Object> paramsList = new ArrayList<>();
public int getParameterCount() throws SQLException {
return getParameterMetaData().getParameterCount();
}
public synchronized List<Object> getParamsList() {
return this.paramsList;
}
private void addParam(int paramInt, Object paramObject1, Object paramObject2, Object paramObject3)
throws SQLException {
List<Object> paramsList = getParamsList();
paramsList.add(paramObject1);
}
private void addParam(int paramInt, Object paramObject1, Object paramObject2) throws SQLException {
List<Object> paramsList = getParamsList();
paramsList.add(paramObject1);
}
private void addParam(int paramInt, Object paramObject) throws SQLException {
List<Object> paramsList = getParamsList();
paramsList.add(paramObject);
}
@Override
public void addBatch() throws SQLException {
((PreparedStatement) this.statement).addBatch();
}
@Override
public void clearParameters() throws SQLException {
((PreparedStatement) this.statement).clearParameters();
}
@Override
public boolean execute() throws SQLException {
if (isInTxcTransaction()) {
SQLType sqlType = ExecutePaser.parse(this);
boolean execute = ((PreparedStatement) this.statement).execute();
ExecutePaser.after(this, sqlType);
return execute;
}
return ((PreparedStatement) this.statement).execute();
}
@Override
public ResultSet executeQuery() throws SQLException {
// 查询语句也要包装么?
return ((PreparedStatement) this.statement).executeQuery();
}
@Override
public int[] executeBatch() throws SQLException {
if (isInTxcTransaction()) {
ExecutePaser.parse(this);
}
return this.statement.executeBatch();
}
@Override
public int executeUpdate() throws SQLException {
if (isInTxcTransaction()) {
SQLType sqlType = ExecutePaser.parse(this);
int num = ((PreparedStatement) this.statement).executeUpdate();
ExecutePaser.after(this, sqlType);
return num;
}
return ((PreparedStatement) this.statement).executeUpdate();
}
@Override
public ResultSetMetaData getMetaData() throws SQLException {
return ((PreparedStatement) this.statement).getMetaData();
}
@Override
public ParameterMetaData getParameterMetaData() throws SQLException {
return ((PreparedStatement) this.statement).getParameterMetaData();
}
@Override
public void setArray(int paramInt, Array paramArray) throws SQLException {
addParam(paramInt, paramArray);
((PreparedStatement) this.statement).setArray(paramInt, paramArray);
}
@Override
public void setAsciiStream(int paramInt, InputStream paramInputStream) throws SQLException {
addParam(paramInt, paramInputStream);
((PreparedStatement) this.statement).setAsciiStream(paramInt, paramInputStream);
}
@Override
public void setAsciiStream(int paramInt1, InputStream paramInputStream, int paramInt2) throws SQLException {
addParam(paramInt1, paramInputStream, paramInt2);
((PreparedStatement) this.statement).setAsciiStream(paramInt1, paramInputStream, paramInt2);
}
@Override
public void setAsciiStream(int paramInt, InputStream paramInputStream, long paramLong) throws SQLException {
addParam(paramInt, paramInputStream, paramLong);
((PreparedStatement) this.statement).setAsciiStream(paramInt, paramInputStream, paramLong);
}
@Override
public void setBigDecimal(int paramInt, BigDecimal paramBigDecimal) throws SQLException {
addParam(paramInt, paramBigDecimal);
((PreparedStatement) this.statement).setBigDecimal(paramInt, paramBigDecimal);
}
@Override
public void setBinaryStream(int paramInt, InputStream paramInputStream) throws SQLException {
addParam(paramInt, paramInputStream);
((PreparedStatement) this.statement).setBinaryStream(paramInt, paramInputStream);
}
@Override
public void setBinaryStream(int paramInt1, InputStream paramInputStream, int paramInt2) throws SQLException {
addParam(paramInt1, paramInputStream, paramInt2);
((PreparedStatement) this.statement).setBinaryStream(paramInt1, paramInputStream, paramInt2);
}
@Override
public void setBinaryStream(int paramInt, InputStream paramInputStream, long paramLong) throws SQLException {
addParam(paramInt, paramInputStream, paramLong);
((PreparedStatement) this.statement).setBinaryStream(paramInt, paramInputStream, paramLong);
}
@Override
public void setBlob(int paramInt, Blob paramBlob) throws SQLException {
addParam(paramInt, paramBlob);
((PreparedStatement) this.statement).setBlob(paramInt, paramBlob);
}
@Override
public void setBlob(int paramInt, InputStream paramInputStream) throws SQLException {
addParam(paramInt, paramInputStream);
((PreparedStatement) this.statement).setBlob(paramInt, paramInputStream);
}
@Override
public void setBlob(int paramInt, InputStream paramInputStream, long paramLong) throws SQLException {
addParam(paramInt, paramInputStream, paramLong);
((PreparedStatement) this.statement).setBlob(paramInt, paramInputStream, paramLong);
}
@Override
public void setBoolean(int paramInt, boolean paramBoolean) throws SQLException {
addParam(paramInt, paramBoolean);
((PreparedStatement) this.statement).setBoolean(paramInt, paramBoolean);
}
@Override
public void setByte(int paramInt, byte paramByte) throws SQLException {
addParam(paramInt, paramByte);
((PreparedStatement) this.statement).setByte(paramInt, paramByte);
}
@Override
public void setBytes(int paramInt, byte[] paramArrayOfByte) throws SQLException {
addParam(paramInt, paramArrayOfByte);
((PreparedStatement) this.statement).setBytes(paramInt, paramArrayOfByte);
}
@Override
public void setCharacterStream(int paramInt, Reader paramReader) throws SQLException {
addParam(paramInt, paramReader);
没有合适的资源?快使用搜索试试~ 我知道了~
SpringCloud2.0.5集成LCN分布式事物最新解决方案

共2575个文件
xml:1045个
class:542个
java:467个


温馨提示
SpringCloud2.0.5集成LCN分布式事物最新解决方案,内含tx-lcn运行tx-manager,然后运行lcn-cloud2.0我自己写的demo即可跑起来, maven jar包我都已经给打包好了加入到项目中即可应用 亲测不懂可以加我qq问329434396。
资源推荐
资源详情
资源评论
















收起资源包目录





































































































共 2575 条
- 1
- 2
- 3
- 4
- 5
- 6
- 26
资源评论

- qq_342909262019-06-16非常有用啊
- oBuXiang1234562019-06-17挺好的啊啊啊
- Joe1922019-06-16参考,参考一下。
- carlor2019-08-30谢谢分享,谢谢
- ShenkXiao2019-05-25谢谢楼主分享

阿七哟
- 粉丝: 2
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- update9-20250731.5.209.slice.img.7z.003
- update9-20250731.5.209.slice.img.7z.004
- 单相交错图腾柱PFC双闭环PI控制仿真实现与优化技巧
- update9-20250731.5.209.slice.img.7z.005
- 基于MATLAB的电流跟踪PWM控制技术:三相逆变器系统设计与仿真实现
- Spring Data JPA实现分页查询功能的完整示例
- 基于TMS320F28335的DSP移相程序:清晰逻辑,注释详尽,专业处理方波信号,开关频率达225kHz,支持后两路移相输出
- 自动驾驶Lattice规划算法详解:轨迹采样、评估与碰撞检测的Matlab和C++实现
- 电力电子领域三相四桥臂逆变器接非线性与不平衡负载的多准PR并联控制研究
- 基于INGO-BiLSTM与改进北方苍鹰优化算法的电力功率负荷预测模型及其超参数优化
- 基于Python的考试管理系统(试题管理 自动阅卷)
- STM32低成本简化版MD500E变频器与永磁同步电机控制算法核心代码解析
- 基于正负序分离技术的三电平NPC整流器不平衡电压控制模型预测与仿真研究
- elasticsearch ik-8 分词器
- 直齿轮六自由度平移-扭转耦合非线性动力学程序:时变压力角与齿侧间隙的影响分析 深度版
- Carsim与Simulink驾驶员在环实时仿真教程:cpar文件与联合仿真文件解析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
