SpringBoot-Mybatis 注解开发之一

本节大纲:

(1)MyBatis介绍
(2)注解思路
(3)新建project以及添加依赖包
(4)创建启动类App.java
(5)编写实体类Demo
(6)编写映射接口DemoMapper
(7)编写service类DemoService
(8)编写控制类DemoController
(9)配置数据库连接池
(10)测试

(1)MyBatis介绍

来源:MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。

       介绍:MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。

(2)注解思路

在Spring Boot中使用注解集成MyBatis的话,那么核心的文件就是实体类和SQL的映射类,比如DemoMapper,在此类当中就是方法和对应的注解sql语句,那么要怎么能够识别到DemoMapper类呢,在Spring Boot中就特别的简单,在启动类App中加入一个注解@MapperScan(指定Mapper包路径)。

(3)新建project以及添加依赖包

新建工程取名为spring-boot-mybatis。

       在pom.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.   <groupId>com.kfit</groupId>  
  5.   <artifactId>spring-boot-mybatis</artifactId>  
  6.   <version>0.0.1-SNAPSHOT</version>  
  7.   <packaging>jar</packaging>  
  8.   <name>spring-boot-mybatis</name>  
  9.   <url>http://maven.apache.org</url>  
  10.   <properties>  
  11.     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  12.   </properties>  
  13.     <!-- spring boot parent节点,引入这个之后,在下面和spring boot相关的就不需要引入版本了; -->  
  14.     <parent>  
  15.        <groupId>org.springframework.boot</groupId>  
  16.        <artifactId>spring-boot-starter-parent</artifactId>  
  17.        <version>1.4.1.RELEASE</version>  
  18.     </parent>  
  19.   <dependencies>  
  20.     <dependency>  
  21.       <groupId>junit</groupId>  
  22.       <artifactId>junit</artifactId>  
  23.       <scope>test</scope>  
  24.     </dependency>  
  25.     <!-- web支持: 1、web mvc; 2、restful; 3、jackjson支持; 4、aop ........ -->  
  26.     <dependency>  
  27.        <groupId>org.springframework.boot</groupId>  
  28.        <artifactId>spring-boot-starter-web</artifactId>  
  29.     </dependency>  
  30.     <!-- mysql 数据库驱动. -->  
  31.     <dependency>  
  32.            <groupId>mysql</groupId>  
  33.            <artifactId>mysql-connector-java</artifactId>  
  34.     </dependency>  
  35.     <!-- spring-boot mybatis依赖:  
  36.        请不要使用1.0.0版本,因为还不支持拦截器插件,  
  37.      -->  
  38.     <dependency>  
  39.         <groupId>org.mybatis.spring.boot</groupId>  
  40.         <artifactId>mybatis-spring-boot-starter</artifactId>  
  41.         <version>1.3.0</version>  
  42.     </dependency>  
  43.   </dependencies>  
  44. </project>

 在这里主要引入Spring Boot的相关的依赖包,MySQL数据库驱动,spring boot mybatis依赖包。这里需要注意版本号,1.0.0的版本还不支持拦截器插件。

(4)编写控制类DemoController

  1. package com.kfit.demo.controller;  
  2. import org.springframework.beans.factory.annotation.Autowired;  
  3. import org.springframework.web.bind.annotation.RequestMapping;  
  4. import org.springframework.web.bind.annotation.RestController;  
  5. import com.kfit.demo.bean.Demo;  
  6. import com.kfit.demo.service.DemoService;  
  7.  
  8. @RestController  
  9. public class DemoController {  
  10.      
  11.     @Autowired  
  12.     private DemoService demoService;  
  13.      
  14.     @RequestMapping("/save")  
  15.     public Demo save(){  
  16.        Demo demo = new Demo();  
  17.        demo.setName("张三");  
  18.        demoService.save(demo);  
  19.        return demo;  
  20.     }  
  21.      
  22. }  

(5)编写service类DemoService

  1. package com.kfit.demo.service;    
  2. import org.springframework.beans.factory.annotation.Autowired;  
  3. import org.springframework.stereotype.Service;  
  4. import org.springframework.transaction.annotation.Transactional;  
  5. import com.kfit.demo.bean.Demo;  
  6. import com.kfit.demo.mapper.DemoMapper;  
  7.    
  8. @Service  
  9. public class DemoService {  
  10.    
  11.     @Autowired  
  12.     private DemoMapper demoMapper;  
  13.      
  14.     @Transactional//添加事务.  
  15.     public void save(Demo demo){  
  16.        demoMapper.save(demo);  
  17.     }  
  18.      
  19. }  

(6)编写映射接口DemoMapper      

这个类就是对应的SQL注解:

  1. package com.kfit.demo.mapper;   
  2. import org.apache.ibatis.annotations.Insert;  
  3. import com.kfit.demo.bean.Demo;  
  4.    
  5. public interface DemoMapper {  
  6.      
  7.     @Insert("insert into Demo(name) values(#{name})")  
  8.     public void save(Demo demo);  
  9.      
  10. }  

注意这个类是interface而不是class。

(7)编写实体类Demo

  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.     }  

(8)创建启动类App.java

  1. package com.kfit;  
  2. import org.mybatis.spring.annotation.MapperScan;  
  3. import org.springframework.boot.SpringApplication;  
  4. import org.springframework.boot.autoconfigure.SpringBootApplication;  
  5.    
  6. @SpringBootApplication  
  7. @MapperScan("com.kfit.*.mapper")  
  8. public class App {  
  9.     public static void main(String[] args) {  
  10.        SpringApplication.run(App.class, args);  
  11.     }  
  12. }  

(9)配置数据库连接池

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

Properties代码

  1. ########################################################  
  2. ###datasource -- 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)测试

在访问之前需要注意:

(1)确保创建了数据库test;

(2)确保创建了表Demo,建表语句如下:

  1. CREATE TABLE  demo (  
  2. id  int  NOT NULL AUTO_INCREMENT ,  
  3. name  varchar(100) NULL ,  
  4. PRIMARY KEY (id)  
  5. ); 

 访问之后,在浏览器端会看到数据:

{"id":0,"name":"张三"}

 

猜你喜欢

转载自blog.csdn.net/tanglei5492/article/details/81479620
今日推荐