09. transaction management, integration jpa

Transaction Management

  • spring-boot-starter-jdbc will automatically default to inject DataSourceTransactionManager
  • spring-boot-starter-data-jpa will automatically default injection JpaTransactionManager
@Service
@Transactional
public class UseDao {
    @Autowired
    private JdbcTemplate jdbcTemplate;

    public int updatePhoneByIDOne(String phone,Long id){
        String sql = "update ADMIN_USER set phone=? where ID = ?";
        int i = jdbcTemplate.update(sql, new Object[]{phone, id});
        int a = 1/0;
        return i;
    }
}

Integration jpa

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.username=
spring.datasource.password=
spring.datasource.url=

spring.jackson.serialization.indent-output=true
#spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.hibernate.dialect=org.hibernate.dialect.Oracle12cDialect

import javax.persistence.*;
import java.util.Date;

@Entity
@Table(name = "ADMIN_USER")
public class AdminUser {
    @Id
    @GeneratedValue(strategy = GenerationType.TABLE,generator = "pk_gen_admin_user")
    @TableGenerator(name = "pk_gen_admin_user",table = "sys_id_gen",pkColumnName = "gen_name",pkColumnValue = "user_admin_user",valueColumnName = "gen_value",allocationSize = 1)
    private Long id;
    private String name;
    private String phone;
    private String province;
    private String city;
    private String district;
//    private Date createData;
    private String company;
    private String remark;

    public Long getId() {
        return id;
    }

    public void setId(Long 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 getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getDistrict() {
        return district;
    }

    public void setDistrict(String district) {
        this.district = district;
    }

//    public Date getCreateData() {
//        return createData;
//    }

//    public void setCreateData(Date createData) {
//        this.createData = createData;
//    }

    public String getCompany() {
        return company;
    }

    public void setCompany(String company) {
        this.company = company;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }
}

import com.fly.entity.AdminUser;
import org.springframework.data.jpa.repository.JpaRepository;

public interface AdminUserDao extends JpaRepository<AdminUser,Long> {
}

import com.fly.dao.AdminUserDao;
import com.fly.entity.AdminUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class AdminUserServiceImpl {
    @Autowired
    private AdminUserDao adminUserDao;
    public AdminUser findOne(Long id){
        return adminUserDao.findOne(id);
    }

    public AdminUser save(AdminUser adminUser){
        return adminUserDao.save(adminUser);
    }
}

Guess you like

Origin www.cnblogs.com/fly-book/p/11605788.html