当前位置: 首页 > news >正文

SpringBoot 集成Mybatis

SpringBoot集成第三方技术,一般都分为导坐标,改配置,写代码三个步骤。

集成Mybatis也类似,新建一个SpringBoot项目。修改:pom.xml文件。

一、导入坐标

<!--druid-->
<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.16</version>
</dependency>
<!--mybatis-->
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version>
</dependency>
<!--mysql-->
<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope>
</dependency>
<!--sqlserver-->
<dependency><groupId>com.microsoft.sqlserver</groupId><artifactId>mssql-jdbc</artifactId><scope>runtime</scope>
</dependency>
<!--lombok-->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional>
</dependency>

druid:数据库连接池,也可以用其他的。

mybatis:mybatis包。

mysql:mysql数据库驱动。(根据数据库实际情况引用)

sqlserver:sqlserver数据库驱动。(根据数据库实际情况引用)

lombok:简化实体类开发。

二、修改配置

修改application.yml文件,增加:

spring:
#数据源配置datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: "jdbc:mysql://【IP】:3306/【database】"username: "【用户名】"password: "【密码】"type: com.alibaba.druid.pool.DruidDataSource # 数据库连接池配置#Mybatis
mybatis:mapper-locations: classpath:mapper/*.xml  type-aliases-package: com.qingshan.mode

mapper-locations: 定义mapper位置。

type-aliases-package: 为了在 Mapper 对应的 XML 文件中可以直接使用类名,而不用使用全限定的类名。与下文的实体类所在包名对应。

三、编写代码

1.实体类:User.java,注意包名com.qingshan.mode,与上面的 type-aliases-package 对应。

package com.qingshan.model;
import lombok.Data;@Data
public class User {private int id;private String name;
}

2.数据层:UserMapper.java(注意:使用注解Mapper)

package com.qingshan.mapper;import com.qingshan.model.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;@Mapper
public interface UserMapper {//无参数查询List<User> getAll();//单条件查询User getById(int id);
}

3.业务层:

3.1 先定义个接口。(注意:使用注解Repository)

package com.qingshan.service;import com.qingshan.model.User;
import org.springframework.stereotype.Repository;@Repository
public interface UserService {User getById(int id);
}

3.2 实现接口(注意:使用注解Service、Transactional)

package com.qingshan.service.impl;import com.qingshan.mapper.UserMapper;
import com.qingshan.model.User;
import com.qingshan.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;@Service
@Transactional
public class UserServiceImpl implements UserService {@Autowiredprivate UserMapper userMaper;@Overridepublic User getById(int id) {return userMaper.getById(id);}
}

4.在web层使用,通过AutoWired注入。

package com.qingshan.web;import com.qingshan.service.UserService; 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
@RequestMapping("/")
public class HomeController {@Autowiredprivate UserService userService;@GetMapping("/")public String index() {var user = userService.getById(1);System.out.println(user);return "index";}
}

http://www.lryc.cn/news/351926.html

相关文章:

  • C语言-atoi()库函数的模拟实现
  • 定时监测服务器磁盘是否超过阈值,超过就删除docker 镜像
  • UDP聊天室
  • LLM多模态——GPT-4o改变人机交互的多模式 AI 模型应用
  • 安卓手机APP开发__蓝牙功能概述
  • get和post的区别,二者是幂等的吗?
  • 农场--Kruskal应用--c++
  • 【Crypto】Rabbit
  • IRFB3207PBF TO-220 N沟道75V/180A 直插MOSFET场效应管
  • 基于单张图片快速生成Metahuman数字人(模型贴图绑定)的工作流演示
  • MySQL数据库下的Explain命令深度解析
  • 防火墙技术基础篇:基于IP地址的转发策略
  • OpenFeign快速入门 替代RestTemplate
  • 自动化测试--利用pytest实现整条业务链路测试
  • 学习其他推理判断
  • Centos7环境下MySQL5.7.38 安装开源审计插件 mysql-audit
  • 基于深度学习的表情识别系统
  • Debug-010-git stash的用法及使用场景
  • RustGUI学习(iced/iced_aw)之扩展小部件(二十五):如何使用tab部件来创建tab多页面切换?
  • P2P服务端模型配合 Tool.net P2pServerAsync 类使用
  • Python语法学习之 - 生成器表达式(Generator Expression)
  • docker所在磁盘空间不足 迁移数据
  • 15、24年--信息系统管理——管理要点
  • 如何使用 CapSolver 扩展找到 Google reCAPTCHA 站点密钥?
  • 安卓分身大师4.6.0解锁会员安卓14可用机型伪装双开多开
  • 攻防世界-mobile-easy-app详解
  • 【简单介绍下爬山算法】
  • Android App启动流程和源码详解
  • SQL的多表联查
  • 瑞芯微RV1126——人脸识别源码分析