随笔 - 88  文章 - 0  评论 - 12  阅读 - 84003

从零开始的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   法哈席基  阅读(297)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示