从零开始的SpringBoot项目 ( 四 ) 整合mybatis

一、创建一个SpringBoot项目

从零开始的SpringBoot项目 ( 二 ) 使用IDEA创建一个SpringBoot项目

二、引入相关依赖

 1 <!--mysql数据库驱动-->
 2 <dependency>
 3   <groupId>mysql</groupId>
 4   <artifactId>mysql-connector-java</artifactId>
 5   <scope>runtime</scope>
 6 </dependency>
 7 <!--mybatis-->
 8 <dependency>
 9   <groupId>org.mybatis.spring.boot</groupId>
10   <artifactId>mybatis-spring-boot-starter</artifactId>
11   <version>2.1.0</version>
12 </dependency>
View Code

三、创建三层框架

 创建实体类 UserInfoDO

 1 package com.my_springboot.user.pojo;
 2 
 3 import java.io.Serializable;
 4 
 5 public class UserInfoDO implements Serializable {
 6 
 7     private static final long serialVersionUID = 1L;
 8     // 用户ID
 9     private String id;
10     // 用户名
11     private String username;
12     // 密码
13     private String password;
14     
15     //省略get set方法
16     
17 }

 创建接口 UserInfoDAO

1 package com.my_springboot.user.dao;
2 
3 import com.my_springboot.user.pojo.UserInfoDO;
4 import java.util.List;
5 
6 public interface UserInfoDAO {
7     List<UserInfoDO> listUsers();
8 }
在resources/mapper文件夹中创建文件 UserMapper.xml
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 3   "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 4 <mapper namespace="com.my_springboot.user.dao.UserInfoDAO">
 5   
 6   <select id="listUsers" resultType="UserInfoDO">
 7         SELECT * FROM sys_user_info
 8     </select>
 9   
10 </mapper>
创建接口 IUserInfoService
1 package com.my_springboot.user.service;
2 
3 import com.my_springboot.user.pojo.UserInfoDO;
4 import java.util.List;
5 
6 public interface IUserInfoService {
7     List<UserInfoDO> listUsers();
8 }

创建实现类 UserInfoServiceImpl 

注意:需要在接口实现类中使用@Service注解,才能被SpringBoot扫描,在Controller中使用@Authwired注入

 1 package com.my_springboot.user.service.impl;
 2 
 3 import com.my_springboot.user.dao.UserInfoDAO;
 4 import com.my_springboot.user.pojo.UserInfoDO;
 5 import com.my_springboot.user.service.IUserInfoService;
 6 import java.util.List;
 7 import org.springframework.beans.factory.annotation.Autowired;
 8 import org.springframework.stereotype.Service;
 9 
10 @Service
11 public class UserInfoServiceImpl implements IUserInfoService {
12 
13     @Autowired
14     UserInfoDAO userInfoDAO;
15     @Override
16     public List<UserInfoDO> listUsers(){
17         return userInfoDAO.listUsers();
18     }
19 }

创建api接口 UserInfoController

package com.my_springboot.user.controller;

import com.my_springboot.user.pojo.UserInfoDO;
import com.my_springboot.user.service.IUserInfoService;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/userInfo")
public class UserInfoController {

    @Autowired
    IUserInfoService userInfoService;

    @GetMapping("/listUsers")
    public List<UserInfoDO> listUsers() {
        return userInfoService.listUsers();
    }
}

在启动类中添加@MapperScan注解 , 扫描所有 Mapper 接口

package com.my_springboot;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@MapperScan("com.my_springboot.*.dao")
@SpringBootApplication
public class MySpringbootApplication {

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

四、配置文件

在 resources 文件夹中创建配置文件 application.yml

 1 server:
 2   #端口号
 3   port: 8080
 4 
 5 spring:
 6   #数据库连接配置
 7   datasource:
 8 #    driver-class-name: com.mysql.cj.jdbc.Driver
 9     url: jdbc:mysql://localhost/my_springboot?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
10     username: root
11     password: root
12 
13 #mybatis的相关配置
14 mybatis:
15   #mapper配置文件
16   mapper-locations: classpath:mapper/*.xml
17   type-aliases-package: com.my_springboot.*.pojo
18   #开启驼峰命名
19   configuration:
20     map-underscore-to-camel-case: true
注意
1.mybatis 中的 mapper-locations 是 mapper 的 xml 文件位置
2.mybatis 中的 type-aliases-package 是为了配置 xml 文件中 resultType 返回值的包位置

五、创建数据库和数据表

 1 -- ----------------------------
 2 -- Table structure for sys_user_info
 3 -- ----------------------------
 4 DROP TABLE IF EXISTS `sys_user_info`;
 5 CREATE TABLE `sys_user_info` (
 6   `id` varchar(32) NOT NULL,
 7   `username` varchar(255) DEFAULT NULL,
 8   `password` varchar(255) DEFAULT NULL,
 9   PRIMARY KEY (`id`)
10 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
11 
12 -- ----------------------------
13 -- Records of tb_user
14 -- ----------------------------
15 INSERT INTO `sys_user_info` VALUES ('1', 'laowang', '112233');
16 INSERT INTO `sys_user_info` VALUES ('2', 'laoli', '123456');

六、启动并访问

启动springboot

 访问 http://localhost:8080/userInfo/listUsers

 

 

 



 

posted on 2020-08-21 09:50  法哈席基  阅读(295)  评论(0编辑  收藏  举报