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

spring整合mybatis dao为什么是空的

发布网友 发布时间:2022-04-08 21:40

我来回答

1个回答

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

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

需要的jar包
mybatis-3.0.6.jar
mybatis-spring-1.0.2.jar

要点:
1.在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>

1.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接口操作,注入时使用的是接口名,其首字母小写
注意:如果有别的实现类,其提供的名称如果是接口名,且首字母小写,则会在启动时出现冲突错误
mybatis 与spring集成的时候为什么dao接口为空

因spring3发布时mybatis还没有出正式版本,所以spring没有整合最新的mybatis.不过社区倒是开发了一个中间件。需要的jar包 mybatis-3.0.6.jar mybatis-spring-1.0.2.jar 要点:1.在spring中配置mybatis工厂类 2.在dao层使用spring注入的的工具bean对数据进行操作 整合时,可以有四种方式来使用mybat...

springboot 整合 mybatis dao一直自动注入失败怎么办?

一、可能出现问题的原因 1.sqlmapConfig.xml文件头写错 2.namespace写错 3.包在工程中放错层级,也会报这个错误.因为Springboot,是通过main方法启动工程的,要求是,通过main项目入口启动的模块,必须和他同级或是它的子包,不能放到他外面,否则,会报错 二、会导致,报,dao注入失败 1.学习springboot整合myb...

Spring MVC配置多个数据源可能遇到的坑

mappedStatements为空的原因是由于在spring容器启动时,会解析spring配置文件,这时将去加载资源文件,解析并以key,value的形式缓存在mappedStatements中。而在实际情况下,发现打包时*Mapper.xml并没有自动复制到class输出目录的mapper类包下。从而导致mappedStatements为空。Mapper interface和xml文件的定义对应不...

Spring MVC+Mybatis报错,dao层的方法为什么找不到映射文件中的sql

BoardDao、ForumService、BoardController有没有set方法或者相应的注解

请教Mybatis和Spring结合的配置问题

一看就知是Mapper配置出错了。仔细检查过了,1、我是用:&lt;bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"&gt; &lt;property name="basePackage" value="cn.xxxx.mail.webmail.dao.mapper"/&gt; &lt;/bean&gt;让spring自动加载mapper配置的,这个没错。2、UserMapper.java接口和UserMapper.xml同名,...

SpringBoot报找不到 dao 问题

使用 mybatis + springboot 进行开发,执行时报找不到 dao 文件 如上,在 @MapperScan 注解中添加 dao 文件对应的路径,这个路径是 java 下面类型为 interface 的 dao 文件的包路径。再次运行,可以正常找到 dao 文件。

spring和mybatis整合怎么将事务在service层关闭?使用xml配置

首先事务不是根据是不是service层而关闭的,而是你开启的session什么时候用完 在哪个层用完就关闭。而一般情况下都是在事务配置文件里的前缀方法名 如:&lt;tx:method name="save*" propagation="REQUIRED"/&gt; 这种在service层调用saveXXX方法时候 这个方法就被事务管理,这个save方法里 再调用dao层查询了你...

Spring整合mybatis运行报错,错误信息如下。

配置datasource数据源的时候,需要指定注入 相关 数据库的用户名密码等等。但是看你好像没有注入。

spring框架和mybatis?

如何整合spring和mybatis框架spring主要用来管理对象关系的,mybatis是链接数据库的。这两个单独也可以使用的,整合是因为现在sshssi比较流行也就是springStruts2hibernatemybatis也叫ibatis。springmvc和mybatis框架的不同1、mybatis是一个持久层框架,是apache下的开源项目,前身是itbatis,是一个不完全的ORM...

spring与mybatis整合出现下面的错误

检查 这个classpath:mybatis-config.xml 里面涉及到的XML 文件是否有问题

spring整合mybatis spring整合redis spring框架和mybatis spring mybatis原理 spring配置mybatis mybatis集成spring spring中bean的作用域 spring整合 spring整合了哪些框架
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
作为健身达人,你怎么能只知道吃鸡蛋 迷雾剧场再出新作 八角亭谜雾》表现如何 专利著作权不可以转让吗 我骑自行车被小气车撞了下,小汽车全责,有事故认定,我有一根利骨骨_百度... 怎么摆脱已分手男人的纠缠 东莞东站到东莞体育管怎么走 东莞市莞太路34号联丰工业区是在南城区吗? 哪个软件免费下载的网站最好呢? update语句SQL问题 sql2000,将表1与表2相同字段的数据找出来,并更新表1的字段 泉州众维企业管理咨询有限公司怎么样? 中国有多少人名字叫〈陈木星〉? 《清迈小时光:清迈和泰北手绘旅行》txt下载在线阅读全文,求百度网盘云资源 有基本可以代替笔记本电脑的平板电脑吗,性比价高的。求推荐 我想知道西安大禹手绘怎么样?? 竹已的小说有哪些? 手绘板什么牌子的好 佳能mp259喷墨打印机上用的墨水哪个牌子最好 苹果售后换新机要几天 苹果换新机需要多久? 苹果手机去售后换新机需要多长时间 海尔热水器jsq24-a2如何取消定时关机 海尔热水器定时器有声音 海尔热水器定时12点是12点开始烧吗? 魅族mx3拍照怎么是倒过来的? 魅族4照相时候照片会横着.明明是竖着照的.请问怎么办才可以整回来 为什么魅族手机用相机拍摄,相册会翻转。 魅族mx5怎么相片倒了,正不过来怎么回事? spring中为什么不直接用SQLsessionfactor? 领余额宝红包入口在哪儿 怎么把一个微信的手机号转到另一个上? 你好,请问我之前已经绑定了一个手机号,现在怎么把这个手机号取消然后换成另外一个? 小白杨作曲士心是怎么去世的? 怎样把手机号换绑到另一个上? 士心什么病去世的 士心的主要成就 小白杨曲作者士心是如何去世的? 能从一个手机号码转移到另一个手机号码吗?怎么样操作? 作曲家士心的妻子刘湘简介? 怎么可以把绑定的手机号换一个? 作曲家士心的原名叫什么啊 士心这个词什么意思,详细点解释? word文档怎么设置行节距 九阳电磁炉间歇加热 爱仕达电磁炉出现间隔工作什么原因 周围多户人家电磁炉出现间歇加热情况是什么原因? 美的电磁炉间歇性的工作怎么回事 怎么把一个微信的手机号转到另一个上? 自己拍的身份证照片怎么去录入 怎样把手机号换绑到另一个上?