springBoot+Maven完全开发手册(项目入门搭建04-整合myBatis)

从零开始搭建springboot+springcloud+mybatis本地项目全过程 记录一个从零开始搭建一个springboot+springcloud+mybatis本地项目的demo的过程 IDE:IntelliJ Idea 2019.3 数据库:mysql 8.0.2.2 SpringBoot版本:2.2.0.RELEASE SpringCloud版本:Hoxton.RELEASE 一、创建一个新的Idea项目 打开Idea,单击New->File->Project,选择Maven,直接下一步 输入我们的项目名,我这里起名为pam,单击Finish完成创建 二、右键单 阅读详情

SpringBoot整合MyBatis

1.数据库,实体类等

这里就不再一一叙述,建表和创建实体类原则看ssm部分

2.在pom.xml中加入相关依赖(坐标)。

<!-- 配置MyBatis启动器 -->
<dependency>
  	<groupId>org.mybatis.spring.boot</groupId>
  	<artifactId>mybatis-spring-boot-starter</artifactId>
  	<version>1.3.0</version>
</dependency>
<!-- 配置mysql驱动 -->
<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 配置c3p0连接池 -->
<dependency>
    <groupId>com.mchange</groupId>
    <artifactId>c3p0</artifactId>
    <version>0.9.5.2</version>
</dependency>

3.配置数据源(在application.properties或application.yml中配置一些依赖所需要的参数)

spring: 
   datasource: 
      url: jdbc:mysql://localhost:3306/maven_ssm_fenmokuai_easyui_day29zuoye 
      driverClassName: com.mysql.jdbc.Driver 
      username: root 
      password: root 
      type: com.mchange.v2.c3p0.ComboPooledDataSource 
server:
   port: 8888 
   context-path: /simpleproduct 

4.实现查询功能

controller层:
package com.xiaoxin.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.xiaoxin.bean.Product;
import com.xiaoxin.service.IProductService;

@Controller
@RequestMapping("/product")
public class ProductController {
	
	@Autowired
	IProductService productService;
	
	
	@ResponseBody
	@RequestMapping(path="/getAllProduct",produces={"application/json;charset=utf-8"})
	public List<Product> getOneProduct() {
		return productService.getAllProduct();
	}
	
}

service层:
package com.xiaoxin.service;

import java.util.List;

import com.xiaoxin.bean.Product;

public interface IProductService {
	
	/**
	 * 获得所有的商品
	 * @return List<Product>
	 * */
	public List<Product> getAllProduct();
	
}

serviceImpl层:
package com.xiaoxin.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.xiaoxin.bean.Product;
import com.xiaoxin.mapper.ProductMapper;
import com.xiaoxin.service.IProductService;

@Service
public class ProductServiceImpl implements IProductService {
	
	@Autowired
	ProductMapper productMapper;

	@Override
	public List<Product> getAllProduct() {
		return productMapper.getAllProduct();
	}
	
}

dao层
package com.xiaoxin.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

import com.xiaoxin.bean.Product;

@Repository
public interface ProductMapper {
	
	/**
	 * 获得所有的商品
	 * @return List<Product>
	 * */
	@Select("select * from product")
	public List<Product> getAllProduct();
	
	
}

5.在SpringBoot启动类配置@MapperScan

启动类放在要加载包的父路径上面,当然你也可以用componentScan,spring的单元测试中的class是指定启动类的.class文件

package com;

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

@SpringBootApplication // 代表为SpringBoot应用的运行主类
@MapperScan(basePackages = {"com.xiaoxin.mapper"})
public class SpringBootApplicationRun {
	
	/** 运行SpringBoot应用 */
	 public static void main(String[] args) {
//		 第一个参数和本类名一致
		 SpringApplication.run(SpringBootApplicationRun.class, args);
		
	}

}

6.跑一跑

在这里插入图片描述

成功!

7.启动类中@MapperScan范围过大出现的bug

如果在SpringBoot的启动类中的mapper扫描范围过大,则会出现bug,建议该扫描范围仅仅只有mapper类

错误演示:

项目文件夹路径:
在这里插入图片描述

我们来看看出现的错误:

Field productService in com.xiaoxin.controller.ProductController required a single bean, but 2 were found:
	- productServiceImpl: defined in file [D:\专业系统学习\java_workplace\xxx\java学习第二阶段\SpringBoot_Meven\springbootzongjiejar\target\classes\com\xiaoxin\service\impl\ProductServiceImpl.class]
	
        
	- IProductService: defined in file [D:\专业系统学习\java_workplace\xxx\java学习第二阶段\SpringBoot_Meven\springbootzongjiejar\target\classes\com\xiaoxin\service\IProductService.class]


Action:

Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed

可以看到:命名IproductService在这个项目中只有一个实现类,所以controller层中的自动注入@Autowired不加 @Qualifier指定要注入的子类是没问题的,但是它这里启动都报了错,原因是重复扫描:springBoot里面帮启动类扫描了所有的实体(componentScan),而这里的mapperScan是专门用来扫mapper类的,而因为范围太大扫到了serviceImpl层,所以重复扫了

进一步解释:

在这里插入图片描述

之后停掉服务器,再修改一下启动类

在这里插入图片描述

说了这么多,解决办法是mapperScan的包扫描最好只扫mapper类

当然上述问题也可以通过给@service(“tt”),然后controller层@Qualifier(“tt”)解决,但不推荐这样做

该小范围后又能跑了.
在这里插入图片描述

【SpringBoot3】整合Druid数据源和Mybatis 项目打包和运行 设置编译的jdk环境为低版本环境:在Maven的pom.xml文件中,可以这样配置: 阅读详情

相关推荐

IDEA搭建SpringBoot项目,整合mybatis中出现的错误以及解决办法

搭建时遇见的错误以及解决办法 1、错误,连接超时。 解决方法: 点击进入IDEA的setting 搜索 HTTP Proxy 选择Auto-detect proxy settings 点击最下面的Check connection弹出如下的输入框,输入地址https://start.spring.io 点击ok。 如果successful证明连接成功,点击ok。 若是连接不成功,把该网址网页打开,...

菜鸟karroy 3227

@Repository 与 @Mapper的区别

今天在用springboot整合mybatis时,mapper接口上用的注解是以前学spring时用的@Repository注解,可一运行,就出现了错误。

qq_44421399的博客 6万+

Spring Boot 中文参考指南

虽然Spring Boot 3.x第一个GA版本出来了,但一段时间内市面上依然还会以2.X版本为主,而2.7.8 是最后一个2.x的GA版本

分享技术干货和灵感、推荐新书和好玩的项目、分享Java面试题 1万+

启动报找不到dao类异常

Description: Field productMapper in com.xxx.xxx.service.impl.CommonServiceImpl required a bean of type ‘com.xxx.xxx.dao.ProductMapper’ that could not be found. Action: Consider defining a bean of type ‘com.xxx.xxx.dao.ProductMapper’ in your configuration.

hit、run 1520

SpringBoot 整合mybatis,mybatis-plus

SpringBoot 整合mybatis,mybatis-plus

congge_study的博客 2万+

Delta-Sigma调制(DSM)技术

前言 数字信号处理和通信系统的性能很大程度上受到了模拟信号到数字信号转换接口——ADC的精度和分辨率的限制。而传统的线性脉冲编码调制(PCM)ADC受到了制造工艺的限制,无法达到很高的分辨率。但基于Delta-Sigma调制技术的ADC可以在现有工艺下实现高分辨率(大于16位),同时由于结构简单,所以易于实现。低成本高性能使得Delta-Sigma调制技术得到了广泛的应用。 Delta-Sigma型ADC的结构原理图如下图所示: 它最大的优势在于仅用1位ADC进行数据转换,同时其模拟电路部分结构简单不需要

阿星的博客 2万+

Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans

Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed *************************** APPLICATION FAILED TO START *************************** Description

wuyuanshun的博客 4万+

视觉机器人抓取实战:从物体定位到抓取估计的完整流程解析(附Python代码示例)

本文详细解析了视觉引导机器人抓取的完整技术流程,涵盖从物体定位、位姿估计到抓取估计的核心步骤。通过Python代码示例,演示了如何使用Open3D等工具进行点云处理、平面分割、PCA与ICP位姿估计,以及基于几何启发式的抓取生成方法,为机器人视觉抓取开发提供了清晰的实战指南。

peach的博客 913

Spring Boot开发指南

Spring Boot使用的关键点

深圳市多克创新科技有限公司 1806

从零搭建企业级AI网关:基于LiteLLM的安全防护体系设计

本文详细介绍了如何从零搭建企业级AI网关,基于LiteLLM构建全面的安全防护体系。内容涵盖分层防御架构、敏感数据处理、合规性配置与审计追踪,以及生产环境部署策略,助力企业安全高效地集成LLM技术,确保数据安全和合规性。

qq_27496129的博客 1291

TGAT Python:图神经网络中的动态图算法

其中,图神经网络中的动态图算法成为了研究的热点之一。在模型的 forward 方法中,通过循环调用 TGATLayer 实例来进行图神经网络的前向传播。最终,模型返回图中节点的表示向量 output,可以用于图分类等任务。TGAT 算法的核心思想是在节点之间建立注意力连接,以捕捉节点在不同时间步之间的关系。TGAT 算法通过引入注意力机制和时间信息,从而有效地对动态图数据进行建模和分析。通过以上 Python 代码,我们可以方便地构建和训练 TGAT 模型,并在图分类任务中应用它。

2301_79366435的博客 1827

Idea+springboot+mybatis+maven搭建web项目

首先.我们今天来学习的是idea开发工具搭建的springboot+mybatis+maven实现web项目的搭建.废话不多.现在开始了.祝福各位大家永无bug!!! 第一步:我们打开idea 第二步:IDEA为我们提供了一种更方便快捷的创建方法,即Spring Initializr。选择后点击Next 第三步:把项目信息写好,点击Next; 第四步:选择web勾选设置 ...

29岁的裴野永远爱你 2万+

工业级C#+YOLOv8缺陷检测系统:准确率98.5%、延迟<50ms的完整实现

本文分享了基于C#和YOLOv8的工业级表面缺陷检测系统实现方案。针对汽车零部件冲压件检测需求(60件/分钟,准确率>98%,延迟<100ms),作者对比了多种技术方案后选择了C#+YOLOv8+ONNX Runtime的组合,最终实现98.5%准确率和42ms延迟。 系统采用分层模块化架构,包含硬件层、采集层、推理层、业务层和控制层。核心优势包括:1)C#在工业环境下的稳定性和集成便利性;2)YOLOv8对复杂缺陷的泛化能力;3)ONNX Runtime GPU加速提升性能。文章详细介绍了硬件

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1140

SpringBoot 整合 Mybatis

SpringBoot Mybatis 整合 SpringBoot Mybatis这么有名的框架废话不多说了,直接开始 环境/版本一览: 开发工具:Intellij IDEA 2020.2.3 springboot:2.3.7.RELEASE jdk:1.8.0_211 maven:3.6.3 工程结构: 开始搭建: 创建数据库 t_user_db SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- -----------------.

王德昌的博客 2万+

14、多级快速多极子算法(MLFMA)详解

多级快速多极子算法(MLFMA)是一种高效加速矩阵向量乘法(MVM)的数值方法,广泛应用于电磁场积分方程求解中。该算法通过构建多级树结构,将MVM分解为近场直接计算和远场分组计算两部分,利用递归聚类、聚合-平移-分解三阶段处理远场相互作用,并结合采样、模式计算与优化策略,将计算复杂度从O(N^2)降低至O(N log N)。博文详细阐述了MLFMA的核心步骤、数学推导、计算复杂度及实际应用中的优化技术,如伽辽金方案改进、对称性利用和反插值方法,为大规模电磁问题的高效求解提供了系统性指导。

t8u9v0w1x的博客 241

智能能效管家:基于 ESP32 的智能插座设计与精细化功耗管理实现

针对传统插座无法远程控制、功耗监测缺失、能源浪费严重等问题,本文设计一款基于 ESP32 主控芯片的智能插座。该系统集成 WiFi 无线通信、交流功耗采集、继电器通断控制模块,实现四大核心功能。硬件采用模块化选型与安全接线设计,软件基于 Arduino-ESP32 框架开发,搭载 Mqtt 通信协议与功耗算法,可通过手机 / 云端实时管控设备,有效提升用电安全性与能源利用率。:ESP32;智能插座;功耗管理;远程控制;能耗监测。

weixin_42300449的博客 101

springboot+mybatis整合(最详细)从maven项目开始

1 新建maven项目 2 在pom.xml中加入spring boot 所需要的配置,创建spring boot的application.java执行文件 2.1 在pom.xml中引入spring-boot-start-parent,这是必须的 2.2需要在pom.xml中引入spring-boot-starter-web依赖,依赖放在<dependencies&g...

huangwei18351的博客 3万+

【Zephyr驱动专题】01_深扒MPU6050陀螺仪寄存器

MPU6050作为最常用的6轴运动跟踪器件,其寄存器配置直接影响传感器性能和功能实现。本文将深入解析关键寄存器,并使用逻辑分析仪抓取信号进行分析。

zero的博客 1572

springboot学习--springboot+maven+mybatis项目搭建

今天我们来搭建一个简单的基于springboot+mybatis+maven的项目,使用的数据库为mysql。   最终项目目录结构 一、项目创建 1.新建spring项目   选择Spring Initializr,选择jdk版本,之后点击Next 填写Group,Artifact,Type选择Maven Project 点击Next 添加项目依赖,暂时只需添加W...

Destiny宿命的博客 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

项目笔记3:Springboot框架的快速搭建和mybatis的整合

本文介绍了创建Spring Boot项目并整合MyBatis的基本步骤。首先通过Spring Initializr创建项目,配置Maven环境。然后创建controller、service、dao、entity等分层目录结构,编写简单的"Hello World"接口示例。接着添加MyBatis和MySQL依赖,配置数据库连接信息,包括端口、用户名、密码等。最后创建User实体类,并开始MyBatis的实体映射配置。文中还提醒了JDK版本与Spring Boot版本的匹配问题,以及配置文件

m0_75167025的博客 1455

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

搭建Springboot项目框架以及Springboot整合MyBatis实战

controller是后台接口的入口,这个“接口”跟我们学习Java基础里面的“接口”是有区别,我们这里的接口是针对于前端来说的,前端操作数据会调用后台的接口,前后台交互的入口。在com.example下面把每个层的包创建好,用于后续我们在不同的包里创建Java文件,后端我们都是分层的。controller:后端接口的入口,主要编写各种 xxxController,提供接口给前端调用。entity:实体类,对应数据库表,实体类的属性对应表的字段信息。这样一个干净的Springboot项目工程就创建好了!

weixin_66106394的博客 1533

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

SpringBoot-搭建集成Mybatis的项目

本文介绍了如何在IntelliJ IDEA中使用SpringBoot和Mybatis构建Java Web应用程序。通过本文的学习,读者将了解如何使用IntelliJ IDEA快速搭建一个基于SpringBoot和Mybatis的Java Web应用程序,提高开发效率。IntelliJ IDEA是一款功能强大的Java集成开发环境(IDE),提供了各种工具和插件,可帮助开发者快速构建各种类型的Java应用程序。

踏雨歌青春,诗酒趁年华 2265

SpringBoot多模块项目搭建(Maven管理、整合MyBatis,搭建、依赖、打包)

SpringBoot多模块项目搭建工程结构和依赖关系一、创建父工程功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 工程结构和依赖关系 工程结构: springboot-multi 子模块:data(实体类) 子模块:dao(持久层

wanlin77的博客 2853

详细搭建SpringBoot+Mybatis项目(Java高玩勿入)

1. 前言 1.1.写本文的目的 记录自己从0到1建立SpringBoot+Mybatis项目 方便有其他语言的开发者能够从0到1快速衔接到JavaSpringBoot项目中 为之后Java项目的案例提供基础 1.2. 本文的内容 IDEA的安装 Maven的安装 SpringBoot+Mybatis项目的搭建 启动项目,连接数据库以及代码编写

XiaoCai 7344

【Java】SpringBoot 单体项目创建 与 整合 Mybatis-Plus

项目准备阶段: 1.创建Spring boot项目 2.整合Mybatis-plus 3.创建并推送至远程仓库

CoderSharry的博客 2768

如何配置开发环境并快速搭建SpringBoot项目

在开发Java应用程序时,配置好开发环境、掌握SpringBoot项目搭建流程和持久层框架的整合非常重要。本文将详细介绍如何配置开发环境,快速搭建SpringBoot项目,并整合MyBatis、MyBatis-Plus和JPA等持久层框架。Spring Boot 支持多种持久层框架,如 MyBatis、MyBatis-Plus 和 JPA,接下来逐一介绍如何整合。安装完成后,配置 JDK 和 Maven,即可使用 IDEA 进行开发。,下载生成的压缩包并解压,在 IDEA 中打开。安装完成后,也需要配置。

2301_78782049的博客 1221
上一篇: springBoot+Maven完全开发手册(项目入门搭建03-视图解析)
下一篇: 2021-01-20
xiaoxin_su
博客等级 码龄8年 0粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值