Springboot+mybatis完整搭建攻略

5.Springboot+mybatis完整搭建攻略

5.1创建springboot项目

打开IDEA,选择File->New->Project->Spring Initialer->点击Next

上述操作搞完后,开始勾选依赖,Springboot为我们提供了常见的依赖,可以勾选自己需要的,一般选择Lombok、Spring Web、Mybatis Framework、MySQL Driver。勾选之后,springboot会 自动帮你把依赖加入pom文件。

勾选后点击next下一步。

最后确认项目名称,和文件地址,点击finish就结束了springboot的创建。

5.2 springboot项目目录结构

springboot项目帮我们创建好java source目录和resource资源目录,项目源码类DemoApplication.java,全局配置文件application.properties,并且帮我们导入了之前勾选的依赖:

5.2.1 DemoApplication.java

DemoApplication.java是一个带有main()方法的类,用于启动应用程序。

@SpringBootApplication开启了Spring的组件扫描和springboot的自动 配置功能,相当于将以下三个注解组合在了一起

(1)@Configuration:表名该类使用基于Java的配置,将此类作为配 置类。

(2)@ComponentScan:启用注解扫描。

(3)@EnableAutoConfiguration:开启springboot的自动配置功能。

SpringBootApplication的默认扫描范围为本包及其子包,因此启动类一般放在最外层。

同时,我们需要在@SpringBootApplication注解上方开启mapper层的扫描。

记得!!!@MapperScan()一定要放在@SpringBootApplication注解上方!!!

package com.hkj.demo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@MapperScan("com.example.demo.mapper")
@SpringBootApplication

public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

5.2.2 application.properties

application.properties是一个全局配置文件,springboot项目启动时会默 认加载此文件的配置信息。

我们也可以在application.properties指定其他 配置文件在项目时自动加载。

#端口号
server.port=8080
#访问路径
server.servlet.context-path=/demo
#mybatis配置路径
mybatis.config-location=classpath:mybatis/mybatis-config.xml
#mapper文件路径
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
#日志文件
logging.file.path=/demo_log/log
#日志输出等级
logging.level.com.example.demo=debug
#数据库连接池
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.druid.filter.wall.config.multi-statement-allow=true
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

其中mybatis.config-location和mybatis.mapper-locations根据自己的最终创建位置改进路径

5.2.3 mybatis-config.xml

在resources下新建一个文件夹mybatis,用于存放mybatis配置文件文件 及mapper.xml文件。在mybatis下新建一个mybatis-config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <settings>
        <setting name="defaultStatementTimeout" value="3000"/>
        <!-- 开启驼峰命名规则-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
        <setting name="logImpl" value="SLF4J"/>
        <setting name="lazyLoadingEnabled" value="true"/>
    </settings>

</configuration>

5.3 写一个登录接口

application.properties中基本配置完成后我们就可以开始编写代码了。在 编写代码之前,我们同样需要创建项目包结构。

在java目录右击鼠标, New->Package,新建项目的包名,将需要用到的包名建好,分别为为 controller,service,mapper,bean等子包 。

这时候看下我的resource文件夹下的mapper文件夹,再看我上方启动类那边的位置,可以根据自己的实际情况写路径。

5.3.1 JsonResult.java

package com.example.demo.bean;

import lombok.AllArgsConstructor;
import lombok.Data;

@Data
@AllArgsConstructor
public class JsonResult<E> {
    private int code; //接口状态码
    private String massage; //接口返回消息2、User.java
    private E content; //响应内容
}

5.3.2 User.java

package com.example.demo.bean;

import lombok.Data;

@Data //注解自动getter+setter
public class User {
    private int id;
    private String userName;
    private String password;
}

5.3.3 UserController.java

package com.example.demo.controller;

import com.example.demo.bean.JsonResult;
import com.example.demo.bean.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    UserService userService;
    @RequestMapping(value = "/login", method = RequestMethod.POST)
    public JsonResult login(@RequestBody User user){
        User res = userService.login(user);
        if (res != null) {
            return new JsonResult(200, "登陆成功", res);
        }
        return new JsonResult(500, "登陆失败", null);
    }
}

5.3.4 UserMapper.java

package com.example.demo.mapper;

import com.example.demo.bean.User;
import org.springframework.stereotype.Repository;

@Repository
public interface UserMapper {
    User login(User user);
}
//PS:这个文件你应该创建的是一个接口类型文件,记得!

5.3.5 UserService.java &UserServiceImpl.java

package com.example.demo.service;

import com.example.demo.bean.User;

public interface UserService {
    User login(User user);
}
//PS:这个文件你应该创建的是一个接口类型文件,记得!
package com.example.demo.service;

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

@Service
public class UserServiceImpl implements UserService{
    @Autowired
    UserMapper userMapper;
    @Override
    public User login(User user) {
        return userMapper.login(user);
    }
}

5.3.6 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.UserMapper">
    <select id="login" resultType="com.example.demo.bean.User">
        select * from `user` where name=#{userName}
        and password=#{password}
    </select>
</mapper>

根据自己的数据库写sql语句。

因为springboot内置Tomcat,因此我们无需配置Tomcat,在上述代码完成之后进入DemoApplication.java,右键->Run 'DemoApplication',项目就可以启动了

5.4 用PostMan测试

新建一个测试请求,按照下图填好相关的接口URL和参数和请求方式 ,点 击send发送请求:


看好图中勾选的键,自此就完成了!

代码已上传到github,可以参考https://github.com/hkj-07/SpringBoot-Mybatis

posted @ 2021-04-13 15:05  HKnight  阅读(1511)  评论(0编辑  收藏  举报