Spring boot+ Mybatis 完美整合之註解版
開發環境:
- 開發工具:Intellij IDEA 2017.1.3
- JDK : 1.8.0_101
- spring boot 版本 : 1.5.8.RELEASE
- maven : 3.3.9
拓展:
- springboot 整合 Mybatis 事務管理
開始
1.新建一個springboot專案:
新增依賴
2.看一下專案結構
3.完整依賴
<?xml version="1.0" encoding="UTF-8"?>
<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.winterchen</groupId>
<artifactId>springboot-mybatis-demo2</artifactId>
<version>0.0.1-SNAPSHOT</version >
<packaging>jar</packaging>
<name>springboot-mybatis-demo2</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId >
<version>1.5.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
4.配置檔案
因為習慣性的喜歡使用application.properties配置如下
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mytest?useUnicode=true&characterEncoding=UTF-8&useSSL=true
spring.datasource.username=root
spring.datasource.password=123456
簡單且簡潔的完成了基本配置,下面看看我們是如何在這個基礎下輕鬆使用Mybatis訪問資料庫的
使用Mybatis
- 在Mysql資料庫中建立資料表:
CREATE DATABASE mytest;
USE mytest;
CREATE TABLE t_user(
id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL ,
password VARCHAR(255) NOT NULL ,
phone VARCHAR(255) NOT NULL
) ENGINE=INNODB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8;
- 建立對映物件User
package com.winterchen.domain;
/**
* User實體對映類
* Created by Administrator on 2017/11/24.
*/
public class User {
private Integer id;
private String name;
private String password;
private String phone;
//省略 get 和 set ...
}
- 建立User對映的操作UserMapper,為了後續單元測試驗證,實現插入和查詢操作
package com.winterchen.mapper;
import com.winterchen.domain.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
/**
* User對映類
* Created by Administrator on 2017/11/24.
*/
@Mapper
public interface UserMapper {
@Select("SELECT * FROM T_USER WHERE PHONE = #{phone}")
User findUserByPhone(@Param("phone") String phone);
@Insert("INSERT INTO T_USER(NAME, PASSWORD, PHONE) VALUES(#{name}, #{password}, #{phone})")
int insert(@Param("name") String name, @Param("password") String password, @Param("phone") String phone);
}
- 建立springboot 主類:
package com.winterchen;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringbootMybatisDemo2Application {
public static void main(String[] args) {
SpringApplication.run(SpringbootMybatisDemo2Application.class, args);
}
}
- 建立測試單元:
- 測試邏輯:插入一條name為”weinterchen”的User,然後根據user的phone進行查詢,並判斷user的name是否為”winterchen”。
package com.winterchen;
import com.winterchen.domain.User;
import com.winterchen.mapper.UserMapper;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootMybatisDemo2ApplicationTests {
@Autowired
private UserMapper userMapper;
@Test
public void test(){
userMapper.insert("dengkaiyao", "123456", "12345678910");
User u = userMapper.findUserByPhone("12345678910");
Assert.assertEquals("dengkaiyao", u.getName());
}
}
- 測試結果
說明已經成功了
事務管理(重要)
我們在開發企業應用時,對於業務人員的一個操作實際是對資料讀寫的多步操作的結合。由於資料操作在順序執行的過程中,任何一步操作都有可能發生異常,異常會導致後續操作無法完成,此時由於業務邏輯並未正確的完成,之前成功操作資料的並不可靠,需要在這種情況下進行回退。
為了測試的成功,請把測試的內容進行替換,因為之前測試的時候已經將資料生成了,重複的資料會對測試的結果有影響
@Test
@Transactional
public void test(){
userMapper.insert("張三", "123456", "18900000000");
int a = 1/0;
userMapper.insert("李四", "123456", "13300000000");
User u = userMapper.findUserByPhone("13389255699");
Assert.assertEquals("dengkaiyao", u.getName());
}
只需要在需要事務管理的方法上新增 @Transactional
註解即可,然後我們啟動測試,會發現異常之後,資料庫中沒有產生資料。
相關推薦
Spring boot+ Mybatis 完美整合之註解版
開發環境: 開發工具:Intellij IDEA 2017.1.3JDK : 1.8.0_101spring boot 版本 : 1.5.8.RELEASEmaven : 3.3.9 拓展: springboot 整合 Mybatis 事務管理 開始 1.新建一個spr
spring boot + mybatis完美整合
這兩天啟動了一個新專案因為專案組成員一直都使用的是mybatis,雖然個人比較喜歡jpa這種極簡的模式,但是為了專案保持統一性技術選型還是定了 mybatis。到網上找了一下關於spring boot和mybatis組合的相關資料,各種各樣的形式都有,看的人心累,結合了mybatis的官方demo和文件
Spring boot+Mybatis 使用DruidDataSource 以註解方式動態整合mysql,sqlserver多資料來源
配置檔案#多源資料庫配置 datasource: mysql: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.jdbc.Driver ur
ssh框架整合之註解版
數據 input ide drive pac form cto log tor 一,引jar包 <!--單測--> <dependency> <groupId>junit</groupI
JavaEE Spring與MyBatis的整合之傳統DAO方式整合(教材學習筆記)
在實際開發中MyBatis都是與Spring整合在一起使用的,在之前學習了MyBatis與Spring,現在來學習如何使他們整合 首先建立一個名為chapter10的web專案 一、環境搭建 1.準備好所有的有關jar包,具體如下: 將上面所有jar包新增到專案lib目錄下
Spring boot+Mybatis plus整合+Mybatis plus逆向工程
環境引數 jdk 1.8 資料庫 Mysql5.5+ IDE IDEA2018.2 Maven 3.3.9 Spring boot 2.1.0.RELEASE Mybatis plus 3.0.5 1.建立Spring Ini
Spring boot入門五 spring mvc spring boot mybatis配置整合
備註:通過前面幾章的操作,對Spring Boot已經有了基本的瞭解,不過Spring Boot他也僅僅是個封裝整合引用的盒子而已,需要與具體的專案相結合才能真正的使用起來,主要是記錄下 使用Spring Boot實現 Spring Mvc 和mybatis的整合:具體配置如
Spring Boot與Log4j2整合之java.lang.IllegalStateException: Logback configuration error detected:
引言: 一個問題的分析與解決過程是表與裡的過程,是一個大膽猜測與小心求證的過程,spring boot與log4j2的整合過程中,我將描述一下分析這個問題的思路和過程。 我一直強調一點: 重要的不是解決問題的結論,而是解決問題的思路和方法,即使在解決完問題之後,
Spring Boot + Mybatis-Plus 整合與使用(二)
前言: 本章節介紹MyBatis-Puls的CRUD使用。在開始之前,先簡單講解下上章節關於Spring B
HBase 系列(十一)—— Spring/Spring Boot + Mybatis + Phoenix 整合
一、前言 使用 Spring+Mybatis 操作 Phoenix 和操作其他的關係型資料庫(如 Mysql,Oracle)在配置上是基本相同的,下面會分別給出 Spring/Spring Boot 整合步驟,完整程式碼見本倉庫: Spring + Mybatis + Phoenix SpringBoot
Spring boot Mybatis 整合(註解版)
之前寫過一篇關於springboot 與 mybatis整合的博文,使用了一段時間spring-data-jpa,發現那種方式真的是太爽了,mybatis的xml的對映配置總覺得有點麻煩。介面定義和對映離散在不同的檔案中,閱讀起來不是很方便。於是,準備使用
Spring Cloud Spring Boot mybatis 企業分布式微服務雲(五)服務消費(Feign)【Dalston版】
host 微服務 https 完成 分布 tar blog 擴展 work Spring Cloud Feign Spring Cloud Feign是一套基於Netflix Feign實現的聲明式服務調用客戶端。它使得編寫Web服務客戶端變得更加簡單。我們只需要通過創建接
Spring Boot MyBatis升級篇-註解-動態SQL(if test)-方案二:@Provider(8)
指定 ins pro builder except uil test 就是 class 1)動態語言註解(2)@Provider使用思路(3)@SelectProvider小試牛刀(4)@SelectProvider初露鋒芒(5)@SelectProvider過關斬將(6)
詳解spring boot mybatis全註解化
color 引入 自動增長 type cat OS TE myba IV 本文重點介紹spring boot mybatis 註解化的實例代碼 1、pom.xml //引入mybatis <dependency> <groupId>org
Spring的第四天AOP之註解版
Spring的第四天AOP之註解版 ssm框架 spring 在上一篇部落格中,介紹了Spring的AOP的xml版本的使用,在這篇部落格中,我將介紹一下,註解版的使用。 常用註解
spring boot+mybatis整合 spring boot+mybatis整合
spring boot+mybatis整合 LZ今天自己搭建了下Spring boot+Mybatis,比原來的Spring+SpringMVC+Mybatis簡單好多。其實只用Spring boot也可以開發,但是對於多表多條件分頁查詢,Spring
Spring Boot 2.0 整合 Mybatis
Spring Boot 2.0 整合 Mybatis分為兩種模式。一種是XML配置,一種是註解。 一、XML配置方式整合 1.1 依賴檔案 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http:/
spring boot+mybatis整合
path get resp osi group exception ext mls 分享 LZ今天自己搭建了下Spring boot+Mybatis,比原來的Spring+SpringMVC+Mybatis簡單好多。其實只用Spring boot也可以開發,但是對於多表
idea中spring boot +mybatis整合
LZ今天自己搭建了下Spring boot+Mybatis,比原來的Spring+SpringMVC+Mybatis簡單好多。其實只用Spring boot也可以開發,但是對於多表多條件分頁查詢,Spring boot就有點力不從心了,所以LZ把Mybatis整合
spring boot + mybatis + druid 的整合
Druid首先是一個數據庫連線池,但它不僅僅是一個數據庫連線池,它還包含一個ProxyDriver(代理),一系列內建的JDBC元件庫,一個SQL Parser(SQL解析器)。 廢話多說不宜下面看Demo: 1.pom.xml <!--jdbc-