从零开始学SpringBoot之Mybatis-注解
2020-03-15 16:02:10来源:博客园 阅读 ()
从零开始学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
原文链接:https://www.cnblogs.com/qiang666/p/12498274.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 2020-06-11
- 掌握SpringBoot-2.3的容器探针:实战篇 2020-06-11
- nacos~配置中心功能~springboot的支持 2020-06-10
- SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash