Spring开启新事务或单独提交事务

说明:以创建订单和更新订单为例

1.接口层

public interface OrderService extends IService<Order> {

    /**
     * 保存order,单独提交事务
     *
     * @param order
     * @return
     */
    Order saveOrderCommit(Order order);
    
    /**
     * 更新订单提交事务
     */
    Order updateOrderCommit(Order order);
}

2.实现层:

@Service
public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements OrderService {


    /**
     * 创建订单事务
     * */
    @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
    @Override
    public Order saveOrderCommit(Order order) {
        order.insert();
        return order;
    }

    /**
     * 更新订单事务
     * */
    @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
    @Override
    public Order updateOrderCommit(Order order) {
        order.updateById();
        return order;
    }

}

3.调用层

	@Resource
    private OrderServiceorderService;

@Override
    @Transactional(rollbackFor = Exception.class)
    public void updateOrder() {
    
        // 更新订单
        order.setNumber(1);
        orderService.updateOrderCommit(order);
}

    @Override
    @Transactional(rollbackFor = Exception.class)
    public void saveOrder() {

        // 创建订单
        Order order = new Order();
        order.setNumber(2);
        order.setId(134562);
        order.setName("张三");
                .;
        orderService.saveOrderCommit(order);
    }
### ROC 曲线概述 ROC曲线(受试者工作特征曲线)是一种广泛应用于二值分类器性能评估的图形化表示方法[^1]。该曲线通过描绘真阳性率(True Positive Rate, TPR),也称为敏感度或召回率,与假阳性率(False Positive Rate, FPR)之间的关系来展示不同阈值下的模型表现。 #### 真阳性假阳性率计算方式 对于给定的一个概率预测模型,在不同的决策边界下可以得到一系列混淆矩阵。基于此,TPR FPR 的定义如下: - **真阳性率 (TPR)** 或 召回率 = TP / (TP + FN),其中 TP 表示真正例数,FN 是指假反例数。 - **假阳性率 (FPR)** = FP / (FP + TN),这里 FP 指的是假正例数量,TN 则代表真实负例的数量。 ```python from sklearn.metrics import roc_curve, auc import matplotlib.pyplot as plt def plot_roc(y_true, y_scores): fpr, tpr, _ = roc_curve(y_true, y_scores) roc_auc = auc(fpr, tpr) plt.figure() lw = 2 plt.plot(fpr, tpr, color='darkorange', lw=lw, label=f'ROC curve (area = {roc_auc:.2f})') plt.plot([0, 1], [0, 1], color='navy', lw=lw, linestyle='--') plt.xlim([0.0, 1.0]) plt.ylim([0.0, 1.05]) plt.xlabel('False Positive Rate') plt.ylabel('True Positive Rate') plt.title('Receiver Operating Characteristic Curve') plt.legend(loc="lower right") plt.show() # 假设我们有一个真实的标签列表对应的分数/概率估计 plot_roc([0, 1, 1, 0, 1], [0.1, 0.4, 0.35, 0.8, 0.7]) ``` #### AUC 度量标准 AUC即曲线下面积(Area Under the Curve), 它衡量了整个二维空间内的积分区域大小。理想情况下,当分类器完美区分两类数据时,其AUC等于1;而随机猜测的结果对应于一条斜率为1的直线,此时AUC=0.5。因此,较高的AUC意味着更好的分类能力[^2]。 #### 使用场景考量 尽管ROC曲线提供了全面的理解视角,但在某些特定条件下可能不如其他类型的图表实用。例如,在处理高度不平衡的数据集时,精确率-召回率(Precision-Recall)图可能会提供更直观的信息[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值