• Spring boot 事务Transactional


    开启事务只需要加上注解@Transactional即可

    // 默认情况下数据库的事务作用范围是在JapRepository 的crud上
    // save 一旦执行成功,就会进行提交
    // 开启事务后遇到RunTimeException 以及子类异常会进行事务回滚
    // 也可以自定义异常回滚级别
    //@Transactional(rollbackFor = Exception.class)
    // 不开启事务
    // @Transactional(propagation = Propagation.NOT_SUPPORTED,readOnly = true)
    
    @Transactional
    @RequestMapping(path = "/user/insert",method = RequestMethod.GET)
    public CustomUser  create(){
        CustomUser user=new CustomUser();
        user.setCustom_age(31);
        user.setCustom_name("guo_4");
        customUserService.create(user);
        return  user;
    
    }
    

      

    开启事务,mysql 数据表引擎类型应是innoDB类型。

    CREATE TABLE `ecard_info`(
        `id` bigint(18) NOT NULL AUTO_INCREMENT,
        `userid` bigint(18),
        `createdate` date,
        `updatedate` date,
        `name` varchar(20),
        `mobile` varchar(20),
        `job` varchar(20),
        `tel` varchar(20),
        `email` varchar(50),
        `postcode` varchar(10),
        `fax` varchar(20),
        `company` varchar(50),
        `department` varchar(50),
        `homepage` varchar(100),
        `address` varchar(100),
        `memo` varchar(500),
        PRIMARY KEY (`id`),
        CONSTRAINT `FK_ECARD_USER` FOREIGN KEY (`userid`) REFERENCES `core_user` (`user_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf-8;
    
    create table user ( id int(4) not null primary key   auto_increment , password varchar(50), username varchar(50) ) engine=InnoDB default charset=utf8mb4;
    

      

    MYSQL 修改数据表存储引擎的方法

    https://www.cnblogs.com/wanghuaijun/p/5829872.html

    看你的mysql现在已提供什么存储引擎:
    mysql> show engines;

    看你的mysql当前默认的存储引擎:
    mysql> show variables like '%storage_engine%';

    你要看某个表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎):
    mysql> show create table 表名;

    MySQL作为最常用的数据库,经常遇到各种各样的问题。今天要说的就是表存储引擎的修改。有三种方式,列表如下。

    1.真接修改。在数据多的时候比较慢,而且在修改时会影响读取性能。my_table是操作的表,innoDB是新的存储引擎。

     
    ALTER TABLE my_table ENGINE=InnoDB

     

    2.导出,导入。这个比较容易操作,直接把导出来的sql文件给改了,然后再导回去。用mysqldump ,枫哥常用的是navicate那样更容易上手。友情提醒风险较大。

    3.创建,插入。这个比第一种速度快, 安全性比第二种高,推荐。分2步操作

    a.创建表,先创建一个和要操作表一样的表,然后更改存储引擎为目标引擎。    

    复制代码代码如下:

    CREATE TABLE my_tmp_table LIKE my_table;
    ALTER TABLE my_tmp_table ENGINE=InnoDB;

    b.插入。为了安全和速度,最好加上事务,并限制id(主键)范围。
    复制代码代码如下:

    INSERT INTO my_tmp_table SELECT * FROM my_table;

     

  • 相关阅读:
    php http_build_query 将布尔值类型转为整型的问题
    一天一个 Linux 命令(34):free 命令
    Laravel 如何使用 PHP 内置的服务器启动服务
    一天一个 Linux 命令(33):top 命令
    Java基础(5)-Java数据类型
    Java int和Integer有什么区别
    Java异常处理常见问题
    PHP重载,不一样的重载
    nginx 反向代理 proxy_pass详解
    composer repositories仓库配置,命令行修改仓库地址
  • 原文地址:https://www.cnblogs.com/galibujianbusana/p/11147949.html
Copyright © 2020-2023  润新知