从零开始学SpringBoot之Mybatis-注解
需求来源:
在视频中,有一条消息:“SpringBoot会将mybaits配置文件sqlmapconfig.xml的视频与mapper.xml集成吗?看到直接支付的集成,结果是快速开发模式,SQL是在类中编写的,想看看配置模式之神创建一个吗?”粉丝需要,这才是真正的需要。好吧,胡说太多了,不好,不好。让我们直说重点。
本节概述:
(1) 关于mybatis
(2) 注解思想
(3) 新建项目并添加依赖项包
(4) 创建启动类App.java
(5) 编写实体类演示
(6) 写映射接口DemoMapper
(7) 编写服务类DemoService
(8) 写控制类DemoController
(9) 配置数据库连接池
(10) 测试
让我们来看看这个部分:
(1) 关于mybatis
资料来源:mybatis是Apache和iBatis的一个开源项目。2010年,这个项目从Apache软件基金会迁移到Google代码中,并重命名为mybatis。2013年11月搬到GitHub。
简介:mybatis是一个优秀的持久层框架,支持常见的SQL查询、存储过程和高级映射。Mybatis几乎消除了JDBC代码和参数的所有手动设置以及结果集的检索。Mybatis使用简单的XML或注释进行配置和原始映射,将Java的接口和POJOs(普通Java对象)映射到数据库中的记录。
(2) 注解思想
当spring boot使用注解集成Mybatis,核心文件是实体类和SQL映射类,比如DemoMapper,它是方法和相应的注释SQL语句。在spring boot中,如何识别DemoMapper类特别简单。将注释@MapperScan(指定映射程序包路径)添加到启动类应用程序。
(3) 新建项目并添加依赖项包
新项目名为SpringBootMybatis。
要将依赖项包添加到pom.xml文件,请执行以下操作:
Xml代码
<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.kfit</groupId>
<artifactId>spring-boot-mybatis</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>spring-boot-mybatis</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- spring boot parent节点,引入这个之后,在下面和spring boot相关的就不需要引入版本了; -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<!-- web支持: 1、web mvc; 2、restful; 3、jackjson支持; 4、aop ........ -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mysql 数据库驱动. -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- spring-boot mybatis依赖:
请不要使用1.0.0版本,因为还不支持拦截器插件,
-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
</dependencies>
</project>
在这里,我们主要介绍了spring boot的相关依赖包、MySQL数据库驱动程序和spring boot mybatis依赖包。注意这里的版本号。1.0.0版本不支持侦听器插件。
(4) 创建启动类app.java
创建启动类app.java:
Java代码
package com.kfit;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.kfit.*.mapper")
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
这里要注意的一个注释是@MapperScan(),它是扫描映射器类,也就是我们编写的SQL类。
(5) 编写实体类演示
实体类中有两个字段:ID和name:
Java代码
package com.kfit.demo.bean;
public class Demo {
private int id;
private String name;
public int getId() {
returnid;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
(6) 写映射接口demomapper
此类是相应的SQL注释:
Java代码
package com.kfit.demo.mapper;
import org.apache.ibatis.annotations.Insert;
import com.kfit.demo.bean.Demo;
public interface DemoMapper {
@Insert("insert into Demo(name) values(#{name})")
public void save(Demo demo);
}
注意,这个类是接口,而不是类。
(7) 编写服务类DemoService
Java代码
package com.kfit.demo.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.kfit.demo.bean.Demo;
import com.kfit.demo.mapper.DemoMapper;
@Service
public class DemoService {
@Autowired
private DemoMapper demoMapper;
@事务性//add a transaction
public void save(Demo demo){
demoMapper.save(demo);
}
}
(8) 写控制类DemoController
Java代码
package com.kfit.demo.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.kfit.demo.bean.Demo;
import com.kfit.demo.service.DemoService;
@RestController
public class DemoController {
@Autowired
private DemoService demoService;
@RequestMapping("/save")
public Demo save(){
Demo demo = new Demo();
Demo.setname(“张三”);
demoService.save(demo);
return demo;
}
}
(9) 配置数据库连接池
在application.properties中配置MySQL数据库连接:
Properties代码
########################################################
###数据源——MySQL数据库配置
########################################################
spring.datasource.url = jdbc:mysql://localhost:3306/test
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
(10) 测试
好的,在这里您可以启动app.java进行访问测试。访问地址:
http://127.0.0.1:8080/save
访问前:
(1) 确保数据库测试已创建;
(2) 确保创建了表演示,并且表创建语句如下所示:
Sql代码
CREATE TABLE demo (
id int NOT NULL AUTO_INCREMENT ,
name varchar(100) NULL ,
PRIMARY KEY (id)
);
访问后,您将在浏览器端看到数据:
{“Id”:0,“name”:“Zhang San”}
当然,最重要的是检查数据库中是否有更多的数据,这是王道。
好吧,祝你们好运。下一篇文章将介绍Mybatis-注解-自增ID
转载自公众号[SpringBoot],作者悟纤
【Java全栈技术分享】,作者Jacky