问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

springboot 整合 mybatis dao一直自动注入失败

发布网友 发布时间:2022-04-20 00:37

我来回答

6个回答

热心网友 时间:2022-04-09 21:31

因spring3发布时mybatis还没有出正式版本,所以spring没有整合最新的mybatis.不过社区倒是开发了一个中间件。

需要的jar包

mybatis-3.0.6.jar

mybatis-spring-1.0.2.jar

要点:

在spring中配置mybatis工厂类

2.在层使用spring注入的的工具bean对数据进行操作

整合时,可以有四种方式来使用mybatis进行数据处理。

spring 中必须的配置。

spring的配置文件中加入以下内容

<!-- MyBatis配置 -->

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

<property name="dataSource" ref="c3p0DataSource" />

<property name="configLocation" value="/WEB-INF/config/db/MyBatisConfiguration.xml" />

<property name="mapperLocations" value="/WEB-INF/config/db/*Mapper.xml" />

<property name="typeAliasesPackage" value="${mybatis.alias.basepackage}" />

</bean>

SqlSessionFactoryBean (必需)

就是中间件所需的处理类

2.dataSource  (必需)

spring中数据源引用

3.configLocation  (可选)

Mybatis自身的配置文件,一般用来声明别名

4.mapperLocation  (可选)

mybatis的映射文件

5.typeAliasesPackage (可选)

要映射类的包路径,如果使用了这种方式,则configLocation中不必再进行声明

使用mybatis进行数据处理的四种方式(SqlSessionTemplate/SqlSessionDaoSupport/MapperFactoryBean/MapperScannerConfigurer)

不同方式的特点

SqlSessionTemplate 这个需要写配置文件,在实现类中注入sqlsession,再使用sqlsession,是细颗粒控制

SqlSessionDaoSupport  这个只需要在实现类中继承特殊类就可以使用sqlsession

MapperFactoryBean  这个要写配置文件,把对应的所有接口在配置文件中引用即可,无需写实现类

MapperScannerConfigurer 这个要写配置文件,只要给出接口所在的包即可,会自动把包中的接口引入,无需写实现类

SqlSessionTemplate

配置文件加入新配

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">

<constructor-arg index="0" ref="sqlSessionFactory" />

<constructor-arg index="1" value="BATCH" /><!--- 如果想要进行批量操作可加入这个属性 ->

</bean>


注入sqlsession()


@Reasource //使用spring3的注解注入

private SqlSession sqlSession;


使用sqlsession来进行操作


public User getUser(String userId) {

return (User) sqlSession.selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser", userId);

}


SqlSessionDaoSupport(sqlSessionFactory会被spring自动装配,不需要手动注入)

继承SqlSessionDaoSupport类


public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {


}


使用getSqlSession()方法取sqlSession来进行数据处理


public User getUser(String userId) {

return (User) getSqlSession().selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser", userId);

}


MapperFactoryBean

写配置文件,引入每个DAO接口


<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">

<property name="mapperInterface" value="org.mybatis.spring.sample.mapper.UserMapper" />

<property name="sqlSessionFactory" ref="sqlSessionFactory" />

</bean>


在业务层可直接注入的接口进行操作

MapperScannerConfigurer

写配置文件,配置包名将自动引入包中的所有接口


<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

<property name="basePackage" value="org.mybatis.spring.sample.mapper" />

</bean>


在业务层可直接注入DAO接口操作,注入时使用的是接口名,其首字母小写

注意:如果有别的实现类,其提供的名称如果是接口名,且首字母小写,则会在启动时出现冲突错误

追问我用的springboot整合哎,不是这个意思

热心网友 时间:2022-04-09 22:49

一、可能出现问题的原因

1.sqlmapConfig.xml文件头写错

2.namespace写错

3.包在工程中放错层级,也会报这个错误.因为Springboot,是通过main方法启动工程的,要求是,通过main项目入口启动的模块,必须和他同级或是它的子包,不能放到他外面,否则,会报错

二、会导致,报,注入失败

1.学习springboot整合myts,根据demo做

2.看整个流程都没问题了,因为配置本身就不多

3.配置文件主要东西都在application.properties中

热心网友 时间:2022-04-10 00:23

在springBoot启动类或在Mybatis类上添加注解@MapperScan,标识扫描接口所在的包。
@MapperScan("com.xxx.yyy")

热心网友 时间:2022-04-10 02:15

springBoot1.5.9整合mybatis,开源中国官方推荐的

热心网友 时间:2022-04-10 04:23

只需要在mapper层加入@mapper注解

热心网友 时间:2022-04-10 06:47

我用idea写的 报错 no bean ......但是不影响运行。。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 使用springboot + mybatis时遇到的问题 搭spring boot + mybatis框架都需要注意什么 spring boot集成mybatis怎么实现自动启动tomcat 求助帖,SpringBoot mybatis 中实现动态修改数据源... springboot+myBatis,一些spring的配置文件放在什... spring boot mybatis怎么配置链接数据库 用springboot与mybatis怎么配置多数据源 如何在spring boot的配置文件 application.yml里 ... springboot mybatis怎么通过xml方式配置sql spring boot mybatis 配置文件怎么写 spring boot mybatis 能同时用注解或配置吗 spring boot mybatis 整合pom.xml怎么配置 求教Springboot+mybatis的配置 金锁玉关,案例分析 详解 既是食品又是药品的物品 风水中,1234要砂,6789要水,什么意思 想了解一下风水学,有哪些入门书籍值得推荐? 想学风水学入门看什么书呢? 金锁玉关是一本什么本书 金锁玉关 口诀 “卯水属同人” 同人卦 啥意思? springboot mybatis 整合后怎么答应输出sql语句? 笔记本无线网卡一连接网络就死机,什么问题啊?急急急!!! 订阅号可以改服务号吗? 如何把微信订阅号升级服务号 订阅号可以升级为服务号,那服务号可不可以改成服... 怎么把订阅号升级成服务号…可以给用户下单买东西那... 订阅号升级服务号,不可以了? 无线网络连接上但是卡的要死是怎么回事? 抖音dou订单记录怎么删除 抖音里面的已签收订单怎么删除? 抖音上热门订单删不掉怎么办? 抖音dou订单记录怎么删除? 抖音加热视频订单怎么删除 抖音dou订单记录怎么删除抖音热门订单投放结束后怎... 抖音如何删除售后订单 如何删除抖音上热门订单OPPO 抖音买的东西没发货怎样删除订单 dou上热门订单怎么删除 手机抖音上购物收货订单全部删除怎么删除 华为p9plus换个电池多少钱