spring 集成mybatis编写后端接口

spring 集成mybatis编写后端接口

简单介绍

Blog如有不对,敬请斧正
喜欢Android的可以关注我,日常更新Android干货
看都看到这了,加个关注叭!
建议收藏,防止找不到,哈哈

Spring:

Spring框架是Java平台上的一种开源应用框架,spring boot其设计目的是用来简化新Spring应用的初始搭建以及开发过程

SpringBoot所具备的特征有

(1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
(2)内嵌Tomcat或Jetty等Servlet容器;
(3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
(4)尽可能自动配置Spring容器;
(5)提供准备好的特性,如指标、健康检查和外部化配置;
(6)绝对没有代码生成,不需要XML配置。

mybatis:

简单来说就是数据库的操作工具,性能大大优于JDBC
MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJO映射成数据库中的记录。

可能你还不理解什么意思,继续往下看吧

实现图
http://localhost:8080/User/8
查找id为8的 返回数据库中Id为8的账号密码
在这里插入图片描述

下一篇文章:spring boot提供api接口与Android交互

创建项目

1、新建项目中选择Spring Initializr

在这里插入图片描述
2、改改名字改改包名啥的 其他默认就好

在这里插入图片描述
3、选择需要的工具,然后等待idea下载完成,这里只选了两个,第一次下的话 要下挺久,下好后去看看pom.xml文件,pom是负责添加依赖让idea去下载的,它里面有这个项目用到的工具啥的

在这里插入图片描述
在这里插入图片描述

代码实现

下载好后开始写代码,我只演示查找用户操作,因为会了一个基本上都一样,改改数据库的操作语句而已

先展示整个项目的结构,结构很关键!

DemoApplication为项目的启动类,负责扫描加载它同包和子包下的文件
在这里插入图片描述
application.properties:配置文件
mapping:映射文件,写数据库语句
他们之间环环相扣,相互需要,代码非常简洁,项目结构清晰

在这里插入图片描述1、建立User实体类

package com.example.demo.entity;

public class User {
    
    
    public int id;
    public String account;
    public String password;

    public int getId() {
    
    
        return id;
    }

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

    public String getAccount() {
    
    
        return account;
    }

    public void setAccount(String account) {
    
    
        this.account = account;
    }

    public String getPassword() {
    
    
        return password;
    }

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

2、建立UserMapper.xml

<?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.mapper.UserMap">
    <!--数据库查询语句
    id是接口名字 resultType是实体类的路径
    -->
    <select id="Sel" resultType="com.example.demo.entity.User">
        select * from user where id = #{
    
    id}
    </select>

</mapper>

3、建立UserMap

package com.example.demo.mapper;
import com.example.demo.entity.User;
import org.springframework.stereotype.Repository;
@Repository
public interface UserMap {
    
    
    User Sel(int id);
}

4、建立UserServlet

package com.example.demo.servlet;

import com.example.demo.entity.User;
import com.example.demo.mapper.UserMap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


@Service
public class UserServlet {
    
    
    @Autowired
    UserMap userMapper;
    public User Sel(int id){
    
    
        return userMapper.Sel(id);
    }
}

5、建立UserController

package com.example.demo.controller;

import com.example.demo.entity.User;
import com.example.demo.servlet.UserServlet;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;

@RestController
@RequestMapping("/User")
public class UserController {
    
    

    @Autowired
    private UserServlet userServlet;

    /**
     * 查找用户
     * @param id
     * @return
     */
    @RequestMapping("/{id}")
    public User GetUser(@PathVariable int id){
    
    
       return userServlet.Sel(id);
    }
}

6、application.properties配置数据库,把下面代码添加进去,改成自己的,数据库应该都了解,这里不做介绍了

#数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/toys?useUnicode=true&characterEncoding=utf-8&userSSL=false
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123456
#
mybatis.mapper-locations=classpath:mapping/*Mapper.xml
mybatis.type-aliases-package=com.example.demo.entity
logging.level.com.example.demo.mapper=debug

最后介绍一下里面用的注解

注解 详细
@Repository 用于标注数据访问组件,即DAO组件
@Service 一般用于修饰service层的组件
@RequestMapping 标记可以用get请求,也可以用post请求
@RestController 返回JSON数据

简单测试

启动项目
浏览器输入
http://localhost:8080/User/8 查找id为8的 返回数据库中Id为8的账号密码
在这里插入图片描述
http://localhost:8080/User/1 查找id为1的 返回数据库中Id为1的账号密码
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44758662/article/details/109556178