1. 程式人生 > >Spring boot+ Mybatis 完美整合之註解版

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 SpringMyBatis整合傳統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-