6.springboot整合mybitas(xml方式)+開啟申明式事物
(1)pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.tyf</groupId> <artifactId>test</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>test</name> <url>http://maven.apache.org</url> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.2.RELEASE</version> <relativePath/> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- mybitas --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency><!-- mybitas --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.29</version> </dependency><!-- mysql --> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> </plugins> </build> </project>
(2)application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
mybatis.mapper-locations=classpath*:mybatis/*Mapper.xml
mybatis.type-aliases-package=com.tyf.entity
(3)/resources/mybatis/AccouMapper.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.tyf.dao.AccounDao"> <update id="updateAccoun"> UPDATE accoun set login=#{login},name=#{name},pass=#{pass} WHERE accoun_id=#{accoun_id} </update> </mapper>
(4)dao
package com.tyf.dao;
import org.apache.ibatis.annotations.Param;
import org.mybatis.spring.annotation.MapperScan;
import com.tyf.entity.Accoun;
public interface AccounDao {
int updateAccoun(
@Param("accoun_id")Integer id,
@Param("login")String login,
@Param("name")String name,
@Param("pass")String pass);
}
(5)service/serviceImpl
package com.tyf.service;
public interface AccounService {
//不開啟申明式事物
public void update1();
//開啟申明式事物之後,同一個事物內的資料庫操作保證都成功或者都失敗
public void update2();
}
<!-- 分割線 -->
package com.tyf.service;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.tyf.dao.AccounDao;
@Service
public class AccounServiceImpl implements AccounService{
@Autowired
private AccounDao accounDao;
//不開啟申明式事物
public void update1(){
accounDao.updateAccoun(1,"new_login","new_name","new_pass");//成功
int i=1/0;
accounDao.updateAccoun(2,"new_login","new_name","new_pass");//失敗
}
//開啟申明式事物之後,同一個事物內的資料庫操作保證都成功或者都失敗
@Transactional
public void update2(){
accounDao.updateAccoun(3,"new_login","new_name","new_pass");//失敗
int i=1/0;
accounDao.updateAccoun(4,"new_login","new_name","new_pass");//失敗
}
}
(6)controller
package com.tyf.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.tyf.service.AccounService;
@RestController
@RequestMapping("/accoun")
public class AccounController {
@Autowired
private AccounService accounService;
@RequestMapping(value="/test1",method = RequestMethod.GET)
@ResponseBody
public String getAccoun1(){
accounService.update1();
return "test1";
}
@RequestMapping(value="/test2",method = RequestMethod.GET)
@ResponseBody
public String getAccoun2(){
accounService.update2();
return "test2";
}
}
(7)app
注意app要新增MappserScan註解掃描dao包,不然dao介面可能注入失敗package com.tyf;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* Hello world!
*
*/
@SpringBootApplication
@MapperScan("com.tyf.dao")
public class App
{
public static void main( String[] args )
{
SpringApplication.run(App.class,args);
}
}
(8)工程圖片
開啟事物直接在service的每個方法上面添加註解就可以開啟申明式事務,保證整個方法中資料庫操作的成功或者失敗回滾
相關推薦
6.springboot整合mybitas(xml方式)+開啟申明式事物
(1)pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocati
SpringBoot精藏(六)SpringBoot開啟申明式事務
SpringBoot開啟申明式事務,只需要一個@Transactional就可以。因為在SpringBoot 中已經預設對jpa和mybatis,hibernate開啟了事務,在引入引用的時候自動就開啟了事務。但是想要用BeatlSQL的話,就必須自己手動開啟事務。 首先建
6. springboot整合quartz實現定時任務
轉載:http://www.cnblogs.com/lic309/p/4089633.html 在做專案時有時候會有定時器任務的功能,比如某某時間應該做什麼,多少秒應該怎麼樣之類的。 spring支援多種定時任務的實現。我們來介紹下使用spring的定時器和使用q
使用dubbo註解@Service註冊服務後使用aop或者申明式事物導致無法註冊的問題解決辦法
導致這個問題的主要原因有2個 1:JdkDynamicProxy導致獲取到的class路徑不正確無法通過包路徑檢查動態代理後的物件獲取到的class都是 com.sun.proxy開頭的 private boolean isMatc
SpringBoot整合MyBatis(iBatis),基於註解和XML兩種方式
工具 IDEA Maven 專案建立 1. 通過IDEA建立SpringBoot專案 2. 結構目錄和JAVA版本選擇 3. 新增MySQL和MyBatis支援 4. 新增Lombok外掛,簡化GET、SET方法 5. WEB支援和啟動類 6. 專
springboot整合mybatis(Mapper.xml和註解兩種方式)
本部落格中介紹了兩種整合方式,分別是xml配置和註解 依賴 <dependency> <groupId>mysql</groupId> <artifactId>mysql-co
SpringBoot填坑系列---XML方式配置數據庫
... eno aging width 1.2 tom group urn epo 本次只是簡單的運用SpringBoot搭建框架,對其原理並不做深入的探究 1.POM文件 1 <?xml version="1.0" encoding="UTF-8"?>
springboot整合mybatis(映射文件方式和註解方式)
分頁 character 訪問 runt mod tis 1.2 req arch springboot作為一個微服務框架,給我們開發人員提供極大的便利,秉著約定大於配置的原則,通過starter包的形式為我們做了許多默認的配置,在進行數據持久化到關系型數據庫時,我們一
Redis詳解 - SpringBoot整合Redis,RedisTemplate和註解兩種方式的使用
本文主要講 Redis 的使用,如何與 SpringBoot 專案整合,如何使用註解方式和 RedisTemplate 方式實現快取。最後會給一個用 Redis 實現分散式鎖,用在秒殺系統中的案例。 更多 Redis 的實際運用場景請關注開源專案 coderiver 專案地址:github.com/cac
第6章 使用springboot整合netty搭建後臺
我們不會去使用自增長的id,在現階段的網際網路開發過程中,自增長的id是已經不適用了。在未來隨著系統版本的迭代,使用者數量的遞增,肯定會做分庫分表,去做一些相應的切分。在這個時候我們就需要有一個唯一的id。專案裡面會有一個唯一id的外掛去使用。所有的主鍵id都會使用一個字串varchar。小頭像是預覽過程
Springboot整合通用mapper、XML、service《spring boot學習五》
1. springmvc之mapper.xml的痛 一般情況下都是一個類寫一個xml或者說即使N個類共用一個XML,其實對於開發者的工作量也是很大的,前期倒沒有什麼,因為可以用自動生成工具來生成,但是後期,如果要新增什麼欄位或者修改欄位的話,對於我們來說真的太噁心了 所以
spring Security4 和 oauth2整合 註解+xml混合使用(替換6位的授權碼)
spring Security4 和 oauth2整合替換6位的授權碼 git地址:https://gitee.com/xiaoyaofeiyang/OauthUmp spring Security4 和 oauth2整合 註解+xml混合使用(基礎執行篇) spring Secu
springboot整合docker部署(兩種構建Docker映象方式)
在docker開始部署springBoot專案(方法一) Dockerfile 檔案 FROM openjdk:8-jdk-alpine VOLUME /tmp ADD testdocker-1.0-SNAPSHOT.jar app.jar ENTRYPOINT ["java","-Djava.s
springboot整合servlet兩種方式
前言: springboot與servlet整合的兩種方式,整合步驟如下: springboot整合servlet方式一: 專案結構: pom.xml: <?xml version="1.0" encoding="UTF-8"?>
springboot整合servlet方式二
1.建立一個springboot專案 package com.test; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.Sp
springboot整合listener方式二
建立一個專案 package com.test; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootAp
springboot整合mybatis的兩種方式的精講過程(含demo下載)
前言: spirngboot整合mybatis過程有兩種整合方式,一種就是通過xml檔案來寫sql,另外一種就是通過註解的方式來寫sql語句.但是不論哪種方式都首先需要引入一個最重要的jar包。那就是mybatis-spring-boot-starter這個包。這個包的部分
SpringBoot整合Mybatis 時開啟事務
1、首先在啟動類加上 @EnableTransactionManagement(proxyTargetClass = true) 注:proxyTargetClass預設為false,springboot的事務是以 JDK dynamic proxy 實現的。我不加之前
SpringBoot整合MyBatis(註解版+XML配置版)
一.公共部分 1.建立SpringBoot專案,加入依賴 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs
Springboot整合mybatis、以及xml配置例項、熱部署
整合mybatis: 引入jar包,這個包是dao+server整合,內涵mybatis生成的xml,及mapper介面和bean物件 引入包後,其包的依賴也會下來,所依賴的jar yml檔案配置連線引數,資料來源如果有引入jar則還可以配置資料來源,myb