99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Springboot 整合 Mybatis 的完整 Web 案例 | 泥瓦匠BYSocket

2023-05-10 15:32 更新
摘要: 原創(chuàng)出處:www.bysocket.com 泥瓦匠BYSocket 希望轉(zhuǎn)載,保留摘要,謝謝!
推薦一本書《騰訊傳》。
Spring Boot 系列文章:《Spring Boot 那些事
新年第一篇 Springboot 技術(shù)文誕生。泥瓦匠準備寫寫 Springboot 相關(guān)最佳實踐。一方面總結(jié)下一些 Springboot 相關(guān),一方面和大家交流交流 Springboot 框架。
現(xiàn)在業(yè)界互聯(lián)網(wǎng)流行的數(shù)據(jù)操作層框架 Mybatis,下面詳解下 Springboot 如何整合 Mybatis ,這邊沒有使用 Mybatis Annotation 這種,是使用 xml 配置 SQL。因為我覺得 SQL 和業(yè)務(wù)代碼應(yīng)該隔離,方便和 DBA 校對 SQL。二者 XML 對較長的 SQL 比較清晰。

一、運行 springboot-mybatis 工程

git clone 下載工程 springboot-learning-example ,項目地址見 GitHub。下面開始運行工程步驟(Quick Start):
1.數(shù)據(jù)庫準備

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 cleaninstall
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>
mybatis-spring-boot-starter 工程依賴如圖:

整個工程的 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í)行模式。默認是 SIMPLE
3.在 Application 應(yīng)用啟動類添加注解 MapperScan

Application.java 代碼如下:

/**
 * Spring Boot 應(yīng)用啟動類
 *
 * Created by bysocket on 16/4/26.
 */
// Spring Boot 應(yīng)用的標識
@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 Longid;
    /**
     * 省份編號
     */
    private Long provinceId;
    /**
     * 城市名稱
     */
    private String cityName;
    /**
     * 描述
     */
    private String description;
    public Long getId() {
        return id;
    }
    public void setId(Longid) {
        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);
}
其他不明白的,可以 git clone 下載工程 springboot-learning-example ,工程代碼注解很詳細。 https://github.com/JeffLi1993/springboot-learning-example。

三、其他

利用 Mybatis-generator自動生成代碼 http://www.cnblogs.com/yjmyzz/p/4210554.html
Mybatis 通用 Mapper3 https://github.com/abel533/Mapper
Mybatis 分頁插件 PageHelper https://github.com/pagehelper/Mybatis-PageHelper
最后,推薦閱讀:《 Spring Boot 之 HelloWorld 詳解
歡迎掃一掃我的公眾號關(guān)注 — 及時得到博客訂閱哦!
— http://www.bysocket.com/ —
— https://github.com/JeffLi1993 —



以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號