Spring Boot中集成Mybaties

1、首先加入依赖

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

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.21</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

2、再application.properties中加入如下内容

spring.datasource.url=jdbc:mysql://localhost:3307/demo?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

mybatis.mapper-locations=classpath:mapper/*.xml

数据库配置请根据自己的情况进行修改,最后一个配置是mapper xml文件的配置路径

3、数据库内容如下

4、bean层,对于数据库中的student

package com.example.demo.bean;

public class Student {

    private int id;
    private String name;
    private String password;

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getPassword() {
        return password;
    }

    public void setId(int id) {
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

5、controller层

package com.example.demo.controller;

import com.example.demo.bean.Student;
import com.example.demo.server.StudentServer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import static org.springframework.web.bind.annotation.RequestMethod.GET;

@Controller
public class StudentController {

    @Autowired
    StudentServer studentServer;

    @ResponseBody
    @RequestMapping(value = "getName",method = GET,produces = "application/json;charset=utf-8")
    public String getName(){
        Student student = null;
        student = studentServer.findStudentById(1);
        if(student!=null){
            return student.getName();
        }else{
            return "无";
        }
    }
}

方法1 、 使用带xml文件的

在Resources新建mapper文件夹,在建立一个student.mapper文件,内容如下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.dao.StudentDao">
    <select id="findStudentById" parameterType="int" resultType="com.example.demo.bean.Student">
        select * from student where id = #{id}
    </select>
</mapper>

在dao层,可以使用@[email protected] 或者直接使用@Mapper

@Repository
public interface StudentDao {

    public Student findStudentById(int id);

}

方法2,不用xml文件,dao层

package com.example.demo.dao;

import com.example.demo.bean.Student;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.stereotype.Repository;

@Mapper
public interface StudentDao2 {

    @Select("select * from student where id = #{id}")
    public Student findStudentById(int id);
}

服务层:(这里写了三种情况,

studentDao是使用@[email protected] ,

studentDao1是使用@Mapper进行测试的

studenDao2是不用xml文件进行测试的   )

package com.example.demo.server.impl;

import com.example.demo.bean.Student;
import com.example.demo.dao.StudentDao;
import com.example.demo.dao.StudentDao1;
import com.example.demo.dao.StudentDao2;
import com.example.demo.server.StudentServer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class StudentServerImpl implements StudentServer {

    @Autowired
    //StudentDao studentDao;
    //StudentDao1 studentDao1;  //虽然会提示有错,但是可以正常运行,有时间再看具体原因
    StudentDao2 studentDao2;

    @Override
    public Student findStudentById(int id) {
        Student student = null;
        /*使用@[email protected]*/
        //student = studentDao.findStudentById(id);
        //student = studentDao1.findStudentById(id);

        student = studentDao2.findStudentById(id);
        return student;
    }
}

这三个最后都能显示正确的答案

持续更新中!!!

原文地址:https://www.cnblogs.com/minblog/p/12510922.html

时间: 2024-10-11 22:23:15

Spring Boot中集成Mybaties的相关文章

Spring Boot 中集成 Redis 作为数据缓存

只添加注解:@Cacheable,不配置key时,redis 中默认存的 key 是:users::SimpleKey [](1.redis-cli 中,通过命令:keys * 查看:2.key:缓存对象存储在Map集合中的key值,非必需,缺省按照函数的所有参数组合作为key值,若自己配置需使用SpEL表达式,比如:@Cacheable(key = "#p0"):使用函数第一个参数作为缓存的key值,更多关于SpEL表达式的详细内容可参考官方文档). 相关文章 网址 SpringBo

使用Logstash同步数据至Elasticsearch,Spring Boot中集成Elasticsearch实现搜索

安装logstash.同步数据至ElasticSearch 为什么使用logstash来同步,CSDN上有一篇文章简要的分析了以下几种同步工具的优缺点:https://blog.csdn.net/laoyang360/article/details/51694519. 下面开始实践: 1. 下载Logstash安装包,需要注意版本与elasticsearch保持一致,windows系统下直接解压即可. 2.添加同步mysql数据库的配置,并将mysql连接驱动jar包放在指定的配置目录 注: 目

spring boot中利用mybatis-generator插件生成代码

使用Idea在spring boot中集成mybatis-generator,自动生成mapper.xml  model  dao 文件 一.配置 pom.xml 在pom.xml的<plugins>标签下增加如下配置 <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <

Spring Boot Admin 集成自定义监控告警

Spring Boot Admin 集成自定义监控告警 前言 Spring Boot Admin 是一个社区项目,可以用来监控和管理 Spring Boot 应用并且提供 UI,详细可以参考 官方文档. Spring Boot Admin 本身提供监控告警功能,但是默认只提供了 Hipchat.Slack 等国外流行的通讯软件的集成,虽然也有邮件通知,不过考虑到使用体检决定二次开发增加 钉钉 通知. 本文基于 Spring Boot Admin 目前最新版 1.5.7. 准备工作 Spring

spring boot admin 集成的简单配置随笔

和我并肩作战的同事也要相继离职了,心里还是有很多不舍得,现在业务也陆陆续续落在了肩头,上午项目经理让我把spring boot admin集成到现在的项目中,已遍后续的监控. 哇!我哪里搞过这个!心里好慌,好在我面向对象虽然不是很精通,但是面向百度我倒是很拿手,于是开启了,面向百度编程,现在已经成功过了~写个博客继续一下,方便以后使用以及分享. 注:此写法适用于 2.0以下版本 高于2.0请直接官方文档走起:http://codecentric.github.io/spring-boot-adm

巧用Spring Boot中的Redis

Redis 介绍 Redis 是目前业界使用最广泛的内存数据存储.相比 Memcached,Redis 支持更丰富的数据结构,例如 hashes, lists, sets 等,同时支持数据持久化.除此之外,Redis 还提供一些类数据库的特性,比如事务,HA,主从库.可以说 Redis 兼具了缓存系统和数据库的一些特性,因此有着丰富的应用场景.本文介绍 Redis 在 Spring Boot 中两个典型的应用场景. 如何使用 1.引入依赖包 <dependency> <groupId&g

spring boot中的底层配置文件application.yam(application.property)的装配原理初探

*在spring boot中有一个基础的配置文件application.yam(application.property)用于对spring boot的默认设置做一些改动. *在spring boot中有集成很多其他的包或者框架,如redis的操作的包,日志的等等. *在spring boot程序启动的时候,也就是下面这个类: @SpringBootApplicationpublic class Springboot1Application { public static void main(S

在Spring Boot中使用MyBatis并且自动生成代码,详细一看就懂

MyBatis目前是主流的数据访问层框架,我司目前的项目大部分都是用MyBatis.本文将使用Spring Boot快速创建项目,并且在Spring Boot中使用MyBatis,编写了一个根据区域id获取区域信息的接口例子.在最后,使用MyBatis的Generator自动生成代码. 0.新建Spring Boot项目 打开开发工具:IntelliJ IDEA,选择jdk 1.8以上. 点击File→New→Project...,选择Spring Initializr. 然后next: nex

spring boot 2 集成JWT实现api接口认证

JSON Web Token(JWT)是目前流行的跨域身份验证解决方案.官网:https://jwt.io/本文spring boot 2 集成JWT实现api接口验证. 一.JWT的数据结构 JWT由header(头信息).payload(有效载荷)和signature(签名)三部分组成的,用“.”连接起来的字符串.JWT的计算逻辑如下:(1)signature = HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(