Explication de la combinaison d'annotation transactionnelle et essayez catch

Code

@Service
public class SysNewsServiceImpl implements SysNewsService {

    private Logger logger = LoggerFactory.getLogger(SysNewsServiceImpl.class);

    @Autowired
    private SysNewsMapper sysNewsMapper;

    @Override
    @Transactional(rollbackFor=Exception.class)
    public void addSysNews(SysNews sysNews) {

        SysNews sysNews1 = new SysNews( "2", "2", 2, 2, new Date());
        SysNews sysNews2 = new SysNews( "东风然后涂华军软件园ada法师法师发大事发生", "1", 1, 1, new Date());
        SysNews sysNews3 = new SysNews( "3", "3", 3, 3, new Date());
        SysNews sysNews4 = new SysNews( "4", "4", 4, 4, new Date());
        SysNews sysNews5 = new SysNews( "5", "5", 5, 5, new Date());

        // 东风然后涂华军软件园ada法师法师发大事发生

        List<SysNews> sysNewsList = new ArrayList<>();
        sysNewsList.add(sysNews1);
        sysNewsList.add(sysNews2);
        sysNewsList.add(sysNews3);
        sysNewsList.add(sysNews4);
        sysNewsList.add(sysNews5);

        for (SysNews news : sysNewsList) {
             sysNewsMapper.insert(news);
        }
    }
}

Le rôle des annotations transactionnelles
Si, lors du processus d'ajout de données, un élément de données ne peut pas être ajouté, alors toutes les données précédemment ajoutées à la base de données seront restaurées. Les données suivantes ne seront pas ajoutées à la base de données pour
assurer la sécurité des données

Utiliser avec try catch

@Service
public class SysNewsServiceImpl implements SysNewsService {

    private Logger logger = LoggerFactory.getLogger(SysNewsServiceImpl.class);

    @Autowired
    private SysNewsMapper sysNewsMapper;

    @Override
    @Transactional(rollbackFor=Exception.class)
    public void addSysNews(SysNews sysNews) {

        SysNews sysNews1 = new SysNews( "2", "2", 2, 2, new Date());
        SysNews sysNews2 = new SysNews( "东风然后涂华军软件园ada法师法师发大事发生", "1", 1, 1, new Date());
        SysNews sysNews3 = new SysNews( "3", "3", 3, 3, new Date());
        SysNews sysNews4 = new SysNews( "4", "4", 4, 4, new Date());
        SysNews sysNews5 = new SysNews( "5", "5", 5, 5, new Date());

        // 东风然后涂华军软件园ada法师法师发大事发生

        List<SysNews> sysNewsList = new ArrayList<>();
        sysNewsList.add(sysNews1);
        sysNewsList.add(sysNews2);
        sysNewsList.add(sysNews3);
        sysNewsList.add(sysNews4);
        sysNewsList.add(sysNews5);

        for (SysNews news : sysNewsList) {
            try {
                sysNewsMapper.insert(news);
            } catch (Exception e) {
                logger.info("增加消息出错",e);
            }
        }

    }
}

Le rôle de l'annotation try catch
Si pendant le processus d'ajout de données, une donnée ne peut pas être ajoutée, alors le rôle de catch est d'attraper l'exception et de laisser uniquement cette donnée ne pas être ajoutée à la base de données. Les données suivantes ou les données antérieures à ces données peuvent encore être ajoutées à la base de données.
Le but est d'empêcher l'interruption de l'activité. Comme catch, vous avez déjà intercepté l'exception, l'activité ne sera donc pas interrompue.
Ce qui précède n'ajoute pas try catch, car il y a une exception, l'entreprise sera également interrompue si elle n'est pas interceptée. .

La persévérance ou la non-persévérance dans cette vie n'est pas terrible, ce dont j'ai peur, c'est de marcher seul sur le chemin de la persévérance! ! !

Je suppose que tu aimes

Origine blog.csdn.net/taiguolaotu/article/details/112480910
conseillé
Classement