从零开始学SpringBoot之Mybatis-注解

2020-03-15 16:02:10来源:博客园 阅读 ()

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

从零开始学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代码

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  

  2.   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  

  3.   <modelVersion>4.0.0</modelVersion>  

  4.    

  5.   <groupId>com.kfit</groupId>  

  6.   <artifactId>spring-boot-mybatis</artifactId>  

  7.   <version>0.0.1-SNAPSHOT</version>  

  8.   <packaging>jar</packaging>  

  9.    

  10.   <name>spring-boot-mybatis</name>  

  11.   <url>http://maven.apache.org</url>  

  12.    

  13.   <properties>  

  14.     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  

  15.   </properties>  

  16.    

  17.    

  18.     <!-- spring boot parent节点,引入这个之后,在下面和spring boot相关的就不需要引入版本了; -->  

  19.     <parent>  

  20.        <groupId>org.springframework.boot</groupId>  

  21.        <artifactId>spring-boot-starter-parent</artifactId>  

  22.        <version>1.4.1.RELEASE</version>  

  23.     </parent>  

  24.    

  25.   <dependencies>  

  26.     <dependency>  

  27.       <groupId>junit</groupId>  

  28.       <artifactId>junit</artifactId>  

  29.       <scope>test</scope>  

  30.     </dependency>  

  31.      

  32.     <!-- web支持: 1、web mvc; 2、restful; 3、jackjson支持; 4、aop ........ -->  

  33.     <dependency>  

  34.        <groupId>org.springframework.boot</groupId>  

  35.        <artifactId>spring-boot-starter-web</artifactId>  

  36.     </dependency>  

  37.      

  38.      

  39.      

  40.     <!-- mysql 数据库驱动. -->  

  41.     <dependency>  

  42.            <groupId>mysql</groupId>  

  43.            <artifactId>mysql-connector-java</artifactId>  

  44.     </dependency>  

  45.      

  46.     <!-- spring-boot mybatis依赖:  

  47.        请不要使用1.0.0版本,因为还不支持拦截器插件,  

  48.      -->  

  49.     <dependency>  

  50.         <groupId>org.mybatis.spring.boot</groupId>  

  51.         <artifactId>mybatis-spring-boot-starter</artifactId>  

  52.         <version>1.3.0</version>  

  53.     </dependency>  

  54.      

  55.   </dependencies>  

  56. </project>  

在这里,我们主要介绍了spring boot的相关依赖包、MySQL数据库驱动程序和spring boot mybatis依赖包。注意这里的版本号。1.0.0版本不支持侦听器插件。

 

(4) 创建启动类app.java

创建启动类app.java:

Java代码

  1. package com.kfit;

  2.  

  3. import org.mybatis.spring.annotation.MapperScan;

  4. import org.springframework.boot.SpringApplication;

  5. import org.springframework.boot.autoconfigure.SpringBootApplication;

  6.  

  7. @SpringBootApplication

  8. @MapperScan("com.kfit.*.mapper")

  9. public class App {

  10. public static void main(String[] args) {

  11. SpringApplication.run(App.class, args);

  12. }

  13. }

 

这里要注意的一个注释是@MapperScan(),它是扫描映射器类,也就是我们编写的SQL类。

 

(5) 编写实体类演示

实体类中有两个字段:ID和name:

Java代码

  1. package com.kfit.demo.bean;

  2.  

  3. public class Demo {

  4. private int id;

  5. private String name;

  6. public int getId() {

  7. returnid;

  8. }

  9. public void setId(int id) {

  10. this.id = id;

  11. }

  12. public String getName() {

  13. return name;

  14. }

  15. public void setName(String name) {

  16. this.name = name;

  17. }

  18. }

  19.  

 

 

(6) 写映射接口demomapper      

此类是相应的SQL注释:

Java代码

  1. package com.kfit.demo.mapper;

  2.  

  3. import org.apache.ibatis.annotations.Insert;

  4. import com.kfit.demo.bean.Demo;

  5.  

  6. public interface DemoMapper {

  7.  

  8. @Insert("insert into Demo(name) values(#{name})")

  9. public void save(Demo demo);

  10.  

  11. }

 

注意,这个类是接口,而不是类。

 

(7) 编写服务类DemoService

Java代码

  1. package com.kfit.demo.service;

  2.  

  3. import org.springframework.beans.factory.annotation.Autowired;

  4. import org.springframework.stereotype.Service;

  5. import org.springframework.transaction.annotation.Transactional;

  6. import com.kfit.demo.bean.Demo;

  7. import com.kfit.demo.mapper.DemoMapper;

  8.  

  9. @Service

  10. public class DemoService {

  11.  

  12. @Autowired

  13. private DemoMapper demoMapper;

  14.  

  15. @事务性//add a transaction

  16. public void save(Demo demo){

  17. demoMapper.save(demo);

  18. }

  19.  

  20. }

 

 

(8) 写控制类DemoController

Java代码

  1. package com.kfit.demo.controller;

  2.  

  3. import org.springframework.beans.factory.annotation.Autowired;

  4. import org.springframework.web.bind.annotation.RequestMapping;

  5. import org.springframework.web.bind.annotation.RestController;

  6. import com.kfit.demo.bean.Demo;

  7. import com.kfit.demo.service.DemoService;

  8.  

  9. @RestController

  10. public class DemoController {

  11.  

  12. @Autowired

  13. private DemoService demoService;

  14.  

  15. @RequestMapping("/save")

  16. public Demo save(){

  17. Demo demo = new Demo();

  18. Demo.setname(“张三”);

  19. demoService.save(demo);

  20. return demo;

  21. }

  22.  

  23. }

 

 

(9) 配置数据库连接池

在application.properties中配置MySQL数据库连接:

Properties代码

  1. ########################################################

  2. ###数据源——MySQL数据库配置

  3. ########################################################

  4. spring.datasource.url = jdbc:mysql://localhost:3306/test

  5. spring.datasource.username = root

  6. spring.datasource.password = root

  7. spring.datasource.driverClassName = com.mysql.jdbc.Driver

  8. spring.datasource.max-active=20

  9. spring.datasource.max-idle=8

  10. spring.datasource.min-idle=8

  11. spring.datasource.initial-size=10

 

 

(10) 测试

好的,在这里您可以启动app.java进行访问测试。访问地址:

http://127.0.0.1:8080/save

访问前:

(1) 确保数据库测试已创建;

(2) 确保创建了表演示,并且表创建语句如下所示:

Sql代码

  1. CREATE TABLE  demo (

  2. id  int  NOT NULL AUTO_INCREMENT ,

  3. name  varchar(100) NULL ,

  4. PRIMARY KEY (id)

  5. );

 

访问后,您将在浏览器端看到数据:

{“Id”:0,“name”:“Zhang San”}

 

当然,最重要的是检查数据库中是否有更多的数据,这是王道。

好吧,祝你们好运。下一篇文章将介绍Mybatis-注解-自增ID

 


原文链接:https://www.cnblogs.com/qiang666/p/12498274.html
如有疑问请与原作者联系

标签:IE对象name操作SQL查询

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Java—正则表达式(Pattern类和Matcher类)

下一篇:Java中的IO与NIO