极简的MyBatis在Spring Boot下的配置

以我的一个项目为例。

0、项目结构:

1、POM中添加MyBatis的依赖:

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.1</version>
</dependency>

2、配置application.properties:

mybatis.mapper-locations=classpath:mapper/*.xml
#mybatis.type-aliases-package=com.julion.onlinestudy.domain

好吧,配置已经结束了。

接下来是一个小测试。

0、Bean文件:

  1 package com.julion.onlinestudy.domain;
  2
  3 import com.fasterxml.jackson.annotation.JsonFormat;
  4
  5 import java.util.Date;
  6
  7 public class Student {
  8     private Integer id;
  9
 10     private String username;
 11
 12     private String password;
 13
 14     private String name;
 15
 16     private String gender;
 17
 18     private String studentNo;
 19
 20     private String grade;
 21
 22     private String major;
 23
 24     private Date createTime;
 25
 26     private Date lastEditTime;
 27
 28     public Integer getId() {
 29         return id;
 30     }
 31
 32     public void setId(Integer id) {
 33         this.id = id;
 34     }
 35
 36     public String getUsername() {
 37         return username;
 38     }
 39
 40     public void setUsername(String username) {
 41         this.username = username == null ? null : username.trim();
 42     }
 43
 44     public String getPassword() {
 45         return password;
 46     }
 47
 48     public void setPassword(String password) {
 49         this.password = password == null ? null : password.trim();
 50     }
 51
 52     public String getName() {
 53         return name;
 54     }
 55
 56     public void setName(String name) {
 57         this.name = name == null ? null : name.trim();
 58     }
 59
 60     public String getGender() {
 61         return gender;
 62     }
 63
 64     public void setGender(String gender) {
 65         this.gender = gender == null ? null : gender.trim();
 66     }
 67
 68     public String getStudentNo() {
 69         return studentNo;
 70     }
 71
 72     public void setStudentNo(String studentNo) {
 73         this.studentNo = studentNo == null ? null : studentNo.trim();
 74     }
 75
 76     public String getGrade() {
 77         return grade;
 78     }
 79
 80     public void setGrade(String grade) {
 81         this.grade = grade == null ? null : grade.trim();
 82     }
 83
 84     public String getMajor() {
 85         return major;
 86     }
 87
 88     public void setMajor(String major) {
 89         this.major = major == null ? null : major.trim();
 90     }
 91
 92     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 93     public Date getCreateTime() {
 94         return createTime;
 95     }
 96
 97     public void setCreateTime(Date createTime) {
 98         this.createTime = createTime;
 99     }
100
101     @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
102     public Date getLastEditTime() {
103         return lastEditTime;
104     }
105
106     public void setLastEditTime(Date lastEditTime) {
107         this.lastEditTime = lastEditTime;
108     }
109 }

1、Mapper XML文件:

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 3 <mapper namespace="com.julion.onlinestudy.mapper.StudentMapper" >
 4   <resultMap id="BaseResultMap" type="com.julion.onlinestudy.domain.Student" >
 5     <id column="id" property="id" jdbcType="INTEGER" />
 6     <result column="username" property="username" jdbcType="VARCHAR" />
 7     <result column="password" property="password" jdbcType="VARCHAR" />
 8     <result column="name" property="name" jdbcType="VARCHAR" />
 9     <result column="gender" property="gender" jdbcType="CHAR" />
10     <result column="student_no" property="studentNo" jdbcType="VARCHAR" />
11     <result column="grade" property="grade" jdbcType="VARCHAR" />
12     <result column="major" property="major" jdbcType="VARCHAR" />
13     <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
14     <result column="last_edit_time" property="lastEditTime" jdbcType="TIMESTAMP" />
15   </resultMap>
16
17   <sql id="Base_Column_List" >
18     id, username, password, name, gender, student_no, grade, major, create_time, last_edit_time
19   </sql>
20
21   <select id="getOneById" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
22     select
23     <include refid="Base_Column_List" />
24     from student
25     where id = #{id,jdbcType=INTEGER}
26   </select>
27
28 </mapper>

2、Mapper文件:

 1 package com.julion.onlinestudy.mapper;
 2
 3 import com.julion.onlinestudy.domain.Student;
 4 import org.apache.ibatis.annotations.Mapper;
 5
 6 import java.util.List;
 7 import java.util.Map;
 8
 9 @Mapper
10 public interface StudentMapper {
11
12     Student getOneById(Integer id);
13
14 }

3、Service文件:

package com.julion.onlinestudy.service;

import com.julion.onlinestudy.domain.Student;

import java.util.List;
import java.util.Map;

public interface StudentService {

    Student getOneById(Integer id);

}

4、Controller文件:

 1 package com.julion.onlinestudy.controller;
 2
 3 import com.julion.onlinestudy.common.BaseResponse;
 4 import com.julion.onlinestudy.domain.Student;
 5 import com.julion.onlinestudy.enums.StatusCode;
 6 import com.julion.onlinestudy.service.StudentService;
 7 import org.slf4j.Logger;
 8 import org.slf4j.LoggerFactory;
 9 import org.springframework.beans.factory.annotation.Autowired;
10 import org.springframework.web.bind.annotation.*;
11
12 import java.util.HashMap;
13 import java.util.List;
14
15 @RestController
16 @RequestMapping("/student")
17 public class StudentController {
18
19     private Logger logger = LoggerFactory.getLogger(this.getClass());
20
21     @Autowired
22     private StudentService service;
23
24     @GetMapping(value = "/one/{id}", produces = "application/json;charset=utf-8")
25     @ResponseBody
26     public Student getOneStudent(@PathVariable Integer id) {
27         logger.info("Controller--获取单个学生信息---Start");
28         Student student = service.getOneById(id);
29         logger.info("Controller--获取单个学生信息---End");
30         return student;
31     }
32
33 }

5、测试结果:

时间: 2024-11-11 04:07:30

极简的MyBatis在Spring Boot下的配置的相关文章

IDEA新建SpringBoot+MySQL+MyBatis+Lombok+Spring Boot DevTools项目

一,IDEA新建SpringBoot+MySQL+MyBatis+Lombok+Spring Boot DevTools项目 1,新建项目的选中项 2,新建后我们需要配置勾选这个自动编译 3,按住shift+alt+ctrl+/,然后选中registry 4,然后选中这个选项 5,然后在 pom.xml文件添加以下代码,开启热部署工具,不配置不生效 <build> <plugins> <plugin> <groupId>org.springframework

Spring Boot系列——日志配置

日志,通常不会在需求阶段作为一个功能单独提出来,也不会在产品方案中看到它的细节.但是,这丝毫不影响它在任何一个系统中的重要的地位. 为了保证服务的高可用,发现问题一定要即使,解决问题一定要迅速,所以生产环境一旦出现问题,预警系统就会通过邮件.短信甚至电话的方式实施多维轰炸模式,确保相关负责人不错过每一个可能的bug. 预警系统判断疑似bug大部分源于日志.比如某个微服务接口由于各种原因导致频繁调用出错,此时调用端会捕获这样的异常并打印ERROR级别的日志,当该错误日志达到一定次数出现的时候,就会

Spring Boot SSL [https]配置例子

前言 本文主要介绍Spring Boot HTTPS相关配置,基于自签证书实现: 通过本例子,同样可以了解创建SSL数字证书的过程: 本文概述 Spring boot HTTPS 配置 server.port=8443 server.ssl.key-alias=selfsigned_localhost_sslserver server.ssl.key-password=changeit server.ssl.key-store=classpath:ssl-server.jks server.ss

Spring Boot 全局异常配置

Spring Boot 全局异常配置,处理异常控制器需要和发生异常的方法在一个类中.使用 ControllerAdvice 注解 package com.li.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ControllerAdvice; import

Spring Boot 外部化配置(二) - @ConfigurationProperties 、@EnableConfigurationProperties

目录 3.外部化配置的核心 3.2 @ConfigurationProperties 3.2.1 注册 Properties 配置类 3.2.2 绑定配置属性 3.1.3 ConfigurationPropertiesAutoConfiguration 4.总结 3.外部化配置的核心 ????????接着上一章,<Spring Boot 外部化配置(一)> 3.2 @ConfigurationProperties 众所周知,当 Spring Boot 集成外部组件后,就可在 propertie

Spring Boot下如何自定义Repository中的DAO方法

环境配置介绍 jdk 1.8, spring Boot 1.5.3.RELEASE, MySQL, Spring Data, JPA 问题描述 Spring Data提供了一套简单易用的DAO层抽象与封装,覆盖的CURD的基本功能,但是在诸多的情况下,需要用户自定义DAO的实现方法,来实现更为复杂和精细的数据库访问操作,该如何来解决这个问题? 目标描述 这里我们以自定义testAA的方法为例,来介绍如何实现自定义的DAO方法扩展. 数据库表的定义 我们这里定义了一个非常简单的mycity表,来作

Spring Boot下的Redis缓存实战

最近在做的一个系统涉及到基础数据的频繁调用,大量的网络开销和数据读写给系统带来了极大的性能压力,我们决定引入缓存机制来缓解系统压力. 什么是缓存 提起缓存机制,大概10个程序员总有5种不同的解释吧(姑且认为只有一半的程序员是通过复制粘贴来学习知识的),我也不能免俗的来说说我的理解. 在回答这个问题之前,我们首先要搞清楚为什么要用缓存? 历史唯物主义揭示了社会发展的基本动力是社会基础矛盾. 运用到软件领域同样适用,一种新技术的出现必然是伴随着特定的矛盾产生的,而缓存的出现正是因为介质提供的实际处理

spring boot下WebSocket消息推送

WebSocket协议 WebSocket是一种在单个TCP连接上进行全双工通讯的协议.WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范.WebSocket API也被W3C定为标准. WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据.在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输 STOMP协议 STOMP是面向文本的消息传

idea下新建Spring Boot项目并配置启动

一.操作步骤 ①使用idea新建一个Spring Boot项目 ②修改pom.xml ③修改application.properties ④修改编写一个Hello Spring Boot的Controller ⑤启动项目访问 二.详细步骤 1.File-->New-->Project 2.选择Spring Initializr 然后Next 3.输入Artiface 然后Next 4.勾选Web .模版我们选择官方推荐的Thymeleaf模版引擎,其他框架.中间件.数据库根据需要选择即可,而且