溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

springboot-mybatis的使用和配置教程

發(fā)布時間:2020-05-21 16:42:22 來源:億速云 閱讀:196 作者:鴿子 欄目:編程語言

一、運行 springboot-mybatis 工程

git clone 下載工程 springboot-learning-example ,項目地址見 GitHub。下面開始運行工程步驟(Quick Start):

1. 數(shù)據(jù)庫準(zhǔn)備

a.創(chuàng)建數(shù)據(jù)庫 springbootdb:

CREATE DATABASE springbootdb;

b.創(chuàng)建表 city :(因為我喜歡徒步)

DROP TABLE IF EXISTS  `city`;
CREATE TABLE `city` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '城市編號',
  `province_id` int(10) unsigned  NOT NULL COMMENT '省份編號',
  `city_name` varchar(25) DEFAULT NULL COMMENT '城市名稱',
  `description` varchar(25) DEFAULT NULL COMMENT '描述',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

c.插入數(shù)據(jù)

INSERT city VALUES (1 ,1,'溫嶺市','BYSocket 的家在溫嶺。');

2. 項目結(jié)構(gòu)介紹

項目結(jié)構(gòu)如下所示:

org.spring.springboot.controller - Controller 層
org.spring.springboot.dao - 數(shù)據(jù)操作層 DAO
org.spring.springboot.domain - 實體類
org.spring.springboot.service - 業(yè)務(wù)邏輯層
Application - 應(yīng)用啟動類
application.properties - 應(yīng)用配置文件,應(yīng)用啟動會自動讀取配置

3. 改數(shù)據(jù)庫配置

打開 application.properties 文件, 修改相應(yīng)的數(shù)據(jù)源配置,比如數(shù)據(jù)源地址、賬號、密碼等。(如果不是用 MySQL,自行添加連接驅(qū)動 pom,然后修改驅(qū)動名配置。)

4. 編譯工程

在項目根目錄 springboot-learning-example,運行 maven 指令:

mvn clean install

5. 運行工程

右鍵運行 Application 應(yīng)用啟動類的 main 函數(shù),然后在瀏覽器訪問:

http://localhost:8080/api/city?cityName=溫嶺市

可以看到返回的 JSON 結(jié)果:

{
    "id": 1,
    "provinceId": 1,
    "cityName": "溫嶺市",
    "description": "我的家在溫嶺。"
}

二、springboot-mybatis 工程配置詳解

1.pom 添加 Mybatis 依賴

<!-- Spring Boot Mybatis 依賴 -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>${mybatis-spring-boot}</version>
</dependency>

整個工程的 pom.xml:

<?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>springboot</groupId>
    <artifactId>springboot-mybatis</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot-mybatis :: 整合 Mybatis Demo</name>

    <!-- Spring Boot 啟動父依賴 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.1.RELEASE</version>
    </parent>

    <properties>
        <mybatis-spring-boot>1.2.0</mybatis-spring-boot>
        <mysql-connector>5.1.39</mysql-connector>
    </properties>

    <dependencies>

        <!-- Spring Boot Web 依賴 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- Spring Boot Test 依賴 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- Spring Boot Mybatis 依賴 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>${mybatis-spring-boot}</version>
        </dependency>

        <!-- MySQL 連接驅(qū)動依賴 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql-connector}</version>
        </dependency>

        <!-- Junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>
</project>

2.在 application.properties 應(yīng)用配置文件,增加 Mybatis 相關(guān)配置

# Mybatis 配置
mybatis.typeAliasesPackage=org.spring.springboot.domain
mybatis.mapperLocations=classpath:mapper/*.xml

mybatis.typeAliasesPackage 配置為 org.spring.springboot.domain,指向?qū)嶓w類包路徑。mybatis.mapperLocations 配置為 classpath 路徑下 mapper 包下,* 代表會掃描所有 xml 文件。

mybatis 其他配置相關(guān)詳解如下:

mybatis.config = mybatis 配置文件名稱
mybatis.mapperLocations = mapper xml 文件地址
mybatis.typeAliasesPackage = 實體類包路徑
mybatis.typeHandlersPackage = type handlers 處理器包路徑
mybatis.check-config-location = 檢查 mybatis 配置是否存在,一般命名為 mybatis-config.xml
mybatis.executorType = 執(zhí)行模式。默認(rèn)是 SIMPLE

3.在 Application 應(yīng)用啟動類添加注解 MapperScan

Application.java 代碼如下:

/**
 * Spring Boot 應(yīng)用啟動類
 *
 * Created by bysocket on 16/4/26.
 */
// Spring Boot 應(yīng)用的標(biāo)識
@SpringBootApplication
// mapper 接口類掃描包配置
@MapperScan("org.spring.springboot.dao")
public class Application {

    public static void main(String[] args) {
        // 程序啟動入口
        // 啟動嵌入式的 Tomcat 并初始化 Spring 環(huán)境及其各 Spring 組件
        SpringApplication.run(Application.class,args);
    }
}

mapper 接口類掃描包配置注解 MapperScan :用這個注解可以注冊 Mybatis mapper 接口類。

4.添加相應(yīng)的 City domain類、CityDao mapper接口類

City.java:

/**
 * 城市實體類
 *
 * Created by bysocket on 07/02/2017.
 */
public class City {

    /**
     * 城市編號
     */
    private Long id;

    /**
     * 省份編號
     */
    private Long provinceId;

    /**
     * 城市名稱
     */
    private String cityName;

    /**
     * 描述
     */
    private String description;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getProvinceId() {
        return provinceId;
    }

    public void setProvinceId(Long provinceId) {
        this.provinceId = provinceId;
    }

    public String getCityName() {
        return cityName;
    }

    public void setCityName(String cityName) {
        this.cityName = cityName;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}

CityDao.java:

/**
 * 城市 DAO 接口類
 *
 * Created by bysocket on 07/02/2017.
 */
public interface CityDao {

    /**
     * 根據(jù)城市名稱,查詢城市信息
     *
     * @param cityName 城市名
     */
    City findByName(@Param("cityName") String cityName);
}


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI