zoukankan      html  css  js  c++  java
  • 新版SpringBoot-Spring-Mybatis事务控制

    快速创建SpringBoot+Spring+Mybatis项目

    https://start.spring.io

    删除pom中mysql依赖的runtime

    pom.xml中添加druid依赖

            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.1.23</version>
            </dependency>

    数据库连接配置文件

    application.properties

    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost:3306/cybclass?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    spring.datasource.username=root
    spring.datasource.password=root
    # 使用阿里巴巴druid数据源,默认使用自带
    spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
    #开启控制台打印sql
    mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

    启动类上添加扫描注解

    UserController.java

    package net.ybclass.demo.controller;
    
    import net.ybclass.demo.domain.User;
    import net.ybclass.demo.service.UserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    @RequestMapping("/api/v1/user")
    public class UserController {
        @Autowired(required = false)
        private UserService userService;
        @RequestMapping("save")
        public Object save(){
            User user=new User();
            user.setId(11);
            user.setName("cyb");
            user.setPwd("423");
            user.setPhone("123456789");
            userService.save(user);
            return user;
        }
    }

    User.java

    package net.ybclass.demo.domain;
    
    public class User {
        private int id;
        private String name;
        private String pwd;
        private String phone;
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getPhone() {
            return phone;
        }
    
        public void setPhone(String phone) {
            this.phone = phone;
        }
    
        public String getPwd() {
            return pwd;
        }
    
        public void setPwd(String pwd) {
            this.pwd = pwd;
        }
    }

    UserMapper.java

    package net.ybclass.demo.mapper;
    
    import net.ybclass.demo.domain.User;
    import org.apache.ibatis.annotations.Insert;
    import org.springframework.stereotype.Repository;
    
    @Repository //让spring扫描到
    public interface UserMapper {
        @Insert("INSERT INTO user (name,pwd,phone) VALUES (#{name},#{pwd},#{phone})")
        int save(User user);
    }

    UserService.java

    package net.ybclass.demo.service;
    
    import net.ybclass.demo.domain.User;
    
    public interface UserService {
        int save(User user);
    }

    UserServicceImpl.java

    package net.ybclass.demo.service.impl;
    
    import net.ybclass.demo.domain.User;
    import net.ybclass.demo.mapper.UserMapper;
    import net.ybclass.demo.service.UserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    @Service //给Spring扫描
    public class UserServiceImpl implements UserService {
        @Autowired(required = false)
        private UserMapper userMapper;
        @Override
        public int save(User user) {
    
            return userMapper.save(user);
        }
    }

    演示

    开始事务

    在启动类上加注解:@EnableTransactionManagement

    在业务类上加:@Transactional

  • 相关阅读:
    redis的发布与订阅机制
    三次握手与四次挥手详解
    super的实例及实现原理
    【node.js】入门篇
    简单理解什么是数据库CDC?(以mysql为例)
    Java小工具类(一)json的K-V转换为Java类属性
    linux系统文件拷贝命令rsync
    linux系统配置常用命令top
    关于ganymed-ssh2版本262和build210的SCPClient类的区别
    阿里巴巴java-数据库开发手册(2020泰山版)
  • 原文地址:https://www.cnblogs.com/chenyanbin/p/13311267.html
Copyright © 2011-2022 走看看