SpringBoot + Mybatis的简单示例

用SpringBoot和Mybatis实现的简单的书籍CRUD的简单例子。

要件

MySQL的DB做成

环境搭建

参照 Vagrant-环境搭建

示例SQL准备

/* DB作成 */
CREATE DATABASE example_db DEFAULT CHARACTER SET utf8;

/* DB切换 */
use example_db;

/* テーブル作成 */
CREATE TABLE `books` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `isbn` varchar(255) DEFAULT NULL,
  `title` varchar(255) DEFAULT NULL,
  `price` int(11) DEFAULT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

/* データ作成 */
insert into books(isbn,title,price,created_at,updated_at)
 values('978-4822280536', 'デッドライン', 2376, NOW(), NOW())
          ,('978-4873114798', 'プログラマが知るべき97のこと', 2052, NOW(), NOW())
          ,('978-4873115658', 'リーダブルコード', 2592, NOW(), NOW());

Spring Boot 工程建立

过程不详细记述,可参照
Gradle的SpringBoot工程

在此不使用 Swigger2,如果想使用的话,加入依赖即可,自行检索。
主要记录几个点

依赖注入

implementation 'org.springframework.boot:spring-boot-starter-jdbc'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.0.0'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'org.springframework.boot:spring-boot-devtools'
runtimeOnly 'mysql:mysql-connector-java'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'

DB设定情报追加

spring.datasource.url=jdbc:mysql://192.168.XX.XX:3306/example_db?useSSL=false
spring.datasource.username=XX
spring.datasource.password=XX
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.tomcat.maxActive=30
spring.datasource.tomcat.maxIdle=20
spring.datasource.tomcat.minIdle=10
spring.datasource.tomcat.initialSize=5

Model定义的作成

src/main/java/com/example/bootbatis/model/Book.java

Dao的作成

src/main/java/com/example/bootbatis/dao/BookDao.java

Mapping文件作成

src/main/resources/dao/BookDao.xml

Mybatis配置文件作成

src/main/resources/mybatis-config.xml

<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <setting name="lazyLoadingEnabled" value="true" />
        <setting name="useColumnLabel" value="true" />
        <setting name="mapUnderscoreToCamelCase" value="true" />
    </settings>
</configuration>

MyBatis用Config类追加

src/main/java/com/example/bootbatis/config/SqlMappingConfig.java

Controller追加

src/main/java/com/example/bootbatis/controller/BookController.java

连接测试

#  list取得
curl -v http://localhost:8080/api/books

# id检索
curl -v http://localhost:8080/api/book/1

# 条目追加
curl -v -XPOST --data "title=TEST&isbn=XXXXX&price=1234" http://localhost:8080/api/book/

# 条目更新
curl -v -XPUT --data "title=UPDATE&isbn=YYYY&price=5678" http://localhost:8080/api/book/4

# 条目删除
curl -v -XDELETE http://localhost:8080/api/book/4

增加动作确认的页面

src/main/java/com/example/bootbatis/config/StaticResourceConfig.java
src/main/resources/static/book.html

確認

http://localhost:8080/static/book.html

JAR包生成

PS C:\Work\springbootmybatis\bootbatis> ./gradlew assemble

在 \build\libs 下面生成 bootbatis-0.0.1-SNAPSHOT.jar

猜你喜欢

转载自blog.csdn.net/oblily/article/details/88112396