• SpringBoot专栏(三) -- SpingBoot集成MyBatis框架


    解决问题:

    SpringBoot2.0集成MyBatis持久化框架?

    本章基于SpringBoot专栏(二) -- 搭建第一个SpringBoot项目的代码

    1. 导入依赖和修改Spring配置文件

    1.1 在pom.xml中导入Mybatis第三方依赖和mysql数据库连接驱动包,如图:

    1.2 修改SpringBoot配置文件

    spring:
      profiles:
        active: dev
    # 为SpringBoot添加数据源,包括url,username,password,数据库驱动名 datasource: url: jdbc:mysql:
    //192.168.43.167:3306/mungerTest01 username: root password: Munger_123 driver-class-name: com.mysql.jdbc.Driver
    # SpringBoot第三方依赖,mybatis的配置文件 mybatis: typeAliasesPackage: com.mungerz.dao mapperLocations: classpath:mapper
    /*.xml

    1.3 使用工具自动生成MyBatis持久代码

    详情见博客:利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件

    1.4 把代码放到SpringBoot项目中。 

    添加业务代码:

    ApiController.java

    package com.mungerz.controller;
    
    import com.mungerz.service.ApiService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.Map;
    
    // RestController注解:说明该类是一个Controller,并且参数和返回值都要求符合Restful要求(即Json字符串)
    @RestController
    // RequestMapping注解:Controller的类的映射地址。
    @RequestMapping("/api")
    public class ApiController {
    
        // Autowired自动注入注解:相当于new ApiService,不过这个工作是由Spring容器自己完成的。AutoWired可以注入Controller,Service,Component这几种类。
        @Autowired
        private ApiService apiService;
    
        // RequestMapping注解:方法的映射地址
        @RequestMapping("/info")
        public Map<String, Object> info(Map<String, Object> params){
            return apiService.info(params);
        }
    
        @RequestMapping("/insert")
        public Map<String, Object> insert(Map<String, Object> params){
            return apiService.insert(params);
        }
    }

    ApiService.java

    package com.mungerz.service;
    
    import java.util.Map;
    
    // Service层接口
    public interface ApiService {
        Map<String, Object> info(Map<String, Object> params);
        Map<String, Object> insert(Map<String, Object> params);
    }

    ApiServiceImpl.java

    package com.mungerz.service;
    
    import com.mungerz.dao.StudentMapper;
    import com.mungerz.domain.Student;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import java.util.HashMap;
    import java.util.Map;
    
    // Service注解:说明该类是一个Service类,从逻辑上我们可以知道这个类属于Service层,应该写业务逻辑;从功能上,这个类是可以通过Autowired注解注入的。
    @Service
    public class ApiServiceImpl implements ApiService {
    
       @Autowired
    private StudentMapper studentMapper; @Override public Map<String, Object> info(Map<String, Object> params) { Map<String, Object> result = new HashMap<>(); result.put("result", "hello world"); return result; } public Map<String, Object> insert(Map<String, Object> params){ Student student = new Student(); student.setAge(25); student.setName("mungerz"); studentMapper.insert(student); Map<String, Object> result = new HashMap<>(); result.put("result", "insert ?"); return result; } }

    StudentMapper.xml中的代码有改动:(因为表的主键是自增的,自动生成的默认需要传入自增主键)

      <insert id="insert" parameterType="com.mungerz.domain.Student">
        insert into student (name, age
          )
        values (#{name,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER}
          )
      </insert>

    注意:文件目录中,mapper的目录是和application.xml中配置的路径对应的

    1.4 测试(省略)

    (转载请标明出处)

  • 相关阅读:
    Django-haystack对接elasticsearch
    Django http 和 https 官网解答
    -bash: nohup: command not found
    Mysql 10060登录异常解决方法
    ssh
    sed grep awk用法
    grep用法
    shell 随笔
    列表生成式
    css
  • 原文地址:https://www.cnblogs.com/mungerz/p/10410923.html
Copyright © 2020-2023  润新知