mybatis mapper xml文件路径问题 20C

在spring中使用mybatis.其中目录结构如下
图片说明

spring配置文件如下:

 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="configLocation" value="classpath:mybatis.xml"/>
    </bean>

    <!-- dao接口的扫描-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="xblog.dal.dao"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    </bean>

其中mybatis配置文件mybatis.xml在resources文件夹中,内容如下:

 <mappers>
        <mapper resource="xblog/dal/mybatis/UserMapper.xml" />
<mappers>

UserMapper.xml放在java源码的xblog.dal.mybatis这个package下,

测试时,出错:
Caused by: java.io.IOException: Could not find resource xblog/dal/mybatis/UserMapper.xml

把UserMapper.xml放在resources目录下,并将mybatis.xml修改为:

就可以通过测试.请问:

如何访问到package目录下的资源.

5个回答

目前的回答没有一个是解决问题的, qq_28797471 的回到只能说是可行。但不是我想要的结果。
还是自己来回答一下。

1. 最大的问题就是mapper xml路径问题:
Java 项目分为两个部分,一个是源码,一个是资源,在使用maven等构建工具时,默认会将源码编译后再加上资源目录的文件放到target目录下作为最后运行的文件(可以是war,jar,或者目录)。有时为了方便,我们会在src/main/java源码目录下放了资源文件,例如mybatis的mapper文件,方便我们编程时展开查看。这时,我们需要设置编译时也将这些配置文件放到target目录下,否则最后的target目录式没有这些文件的。在maven中,可以很方便地在build元素中添加:
 <build>
        <!--注意,如果将静态资源放在src/main/java中,那么编译时将被maven忽略,在target目录下将没有这些资源,此处,我们将
        mybatis的mapper.xml放在了dal包中,方便编程查看,所以需要将该目录添加为资源目录.
        -->
        <resources>
            <resource>
            <directory>src/main/java</directory>
            <includes>
            <include>**/*.xml</include>
            </includes>
            </resource>
        </resources>

        <finalName>xblog</finalName>
    </build>

我现在用的是SpringMVC和Hibernate了,MyBatis也接触过。
祝你好运,早点配置好。

如果你是整合spring的话,在spring配置文件中配置就好了,如果整合其他的框架一般也都是在配置文件中扫描配置文件

没记错的话,mapper.xml应该与对应的类放在一个包下面吧

"把UserMapper.xml放在resources目录下,并将mybatis.xml修改为:"

修改为什么了?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mybatis mapper文件路径问题!!!
其实我已经发现了问题,但是不太理解。我的情况是我的项目是需要写web service调用数据库的值返回json给用户,需要引入一个jar包,这个包里对mybatis的DAO 接口,mapper.XML文件,配置文件都已经写好,我直接就可以调用。但是由于需求的关系,我需要重写一些DAO和mapper文件,我在项目里建立和jar包里相同的包名去放mapper 和 DAO. 问题来了。。。我也需要直接调用那个jar包里的DAO和mapper。现在是虽然我的包名和那个jar包里的名字一样,但是spring只会解析我自己定义的包里的mappers,,会报org.apache.ibatis.binding.BindingException:, 意思也就是说我不能再直接使用jar包里的Mapper 和DAO了。。。有什么方法可以两种情况都能使用啊。。。求大神指导!!!!rn这个报的错rnSEVERE: Servlet.service() for servlet [SpringMVC] in context with path [/WorkdayPersonOrgWS] threw exception [Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.qvc.hrp.app.wdpo.dao.PersonDAO.selectByPrimaryKey] with root causernorg.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.qvc.hrp.app.wdpo.dao.PersonDAO.selectByPrimaryKeyrn at org.apache.ibatis.binding.MapperMethod$SqlCommand.(MapperMethod.java:189)rn at org.apache.ibatis.binding.MapperMethod.(MapperMethod.java:43)rn at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:58)rn at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:51)rn at com.sun.proxy.$Proxy19.selectByPrimaryKey(Unknown Source)rn at com.qvc.hrp.app.wdpo.controller.EmployeeController.getEmployeeInformation(EmployeeController.java:58)rn at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)rn at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)rn at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)rn at java.lang.reflect.Method.invoke(Method.java:483)rn at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)rn at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)rn at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)rn at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:781)rn at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:721)rn at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)rn at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:943)rn at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)rn at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)rn at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857)rn at javax.servlet.http.HttpServlet.service(HttpServlet.java:618)rn at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)rn at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)rn at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)rn at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)rn at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)rn at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)rn at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)rn at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)rn at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)rn at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)rn at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)rn at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)rn at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)rn at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)rn at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)rn at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)rn at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)rn at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)rn at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:534)rn at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1081)rn at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)rn at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)rn at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566)rn at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523)rn at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)rn at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)rn at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)rn at java.lang.Thread.run(Thread.java:745)rnrn
自动生成实体类和mybatis的mapper和xml
下载后可直接导入工程,设置好要连接的数据库,点运行即可自动生成mybatis中用到的mapper、实体类、mapper.xml
MyBatis的Mapper XML映射文件配置解析
1.一般配置Mapper XML映射文件可按如下方式: <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> select * from user where id = #{id} select * from
mybatis 自动生成数据库表及mapper xml
里面包含说明使用方法,主要是mybatis生成mysql 数据库表并生成mapper对象和xml
第三章 MyBatis Mapper 的 XML 配置文件
第三章 MyBatis  Mapper 的 XML 配置文件 爱玩酷原创(https://www.iplayers.cn) 文章来自(第三章 MyBatis  Mapper 的 XML 配置文件) 一、属性(properties properties ) JAVA 属性文件就可以配置直观的、可代替的属性,或者是属性项的子项。比如:
mybatis定义自己的mapper和xml
用Mybatis generator可以自动生成table对应的javaBean和xml,mapper接口。由于表的结构会发生变化,而业务中生成的mapper并不能完全满足需求,因此要自己写sql xml, 不能写在mybatis 生成的文件中,不然下次就会被覆盖了。 解决办法: 1:建自己的Mapper.java接口,目录和mybatis生成的mapper.java相同。先不定义方法 ...
mybatis学习笔记之——mybatis的Mapper XML映射文件配置信息
sql映射文件对应的增删改查都有自己的标签: &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&amp;gt; &amp;lt;!DOCTYPE mapper PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot; &quot;http://mybatis.org/dtd/mybatis-3-mapper.dtd&quot;&amp;gt;
mybatis配置mapper自动提示xml下载和配置
楼主自己新买了个macbookpro,下载了eclipse后发现mapper.xml不能自动提示,虽然不提示也能运行,但是我们码农一定要追求高效的速度嘛。现在总结一下自己的过程。(任何系统都是一样的可以用 win,mac,linux等等) 1、先把这个xml的配置文件下载好,存放在电脑一个放文件的地方 只有6k:http://mybatis.org/dtd/mybatis-3-mapper.dt
Mybatis 在 Mapper 的 xml 文件中的转义字符的处理
一、XML转义字符 Tables Are Cool &amp;amp;amp;lt; &amp;amp;lt; 小于号 &amp;amp;amp;gt; &amp;amp;gt; 大于号 &amp;amp;amp;amp; &amp;amp;amp; 和 &amp;amp;amp;apos; ‘ 单引号 &amp;amp;amp;quot; “ 双引号 二、用转义字符进行替换 eg: S
Mybatis学习二之Mapper XML 文件
SQL映射文件SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序):cache – 给定命名空间的缓存配置。 cache-ref – 其他命名空间缓存配置的引用。 resultMap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。 parameterMap – 已废弃!老式风格的参数映射。内联参数是首选,这个元素可能在将来被移除,这里不会记录。 sql
Spring Boot 整合Mybatis 之 Mapper插件(自动生成XML及Mapper代码)
pom文件 主要代码 &amp;lt;dependencies&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;mysql&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;mysql-connector-java&amp;lt;/artifactId&amp;gt; &amp;lt;/depe...
mybatis一键生成代码(dao,mapper,xml)
一键生成代码,提高开发效率,自动生成dao类,mapper类及xml文件。
MyBatis Mapper XML 文件 的学习详解
[size=medium]Mapper.xml文件示例[/size] [code=&quot;java&quot;] user_id, username, email, password, tuijian_userid, paypassword, logintime ...
mybatis mapper xml里面问号的问题
我的项目中,有地方用到了oracle的正则表达式,里面含有懒惰匹配".+?",将它放在mybatis里面就出现了问题,问号直接被替换为其他值不能原样输出,我是写在里面的,还是不能够原样输出,而且我设置属性值为“?”,然后在mapper里面$var还是不能原样输出rnrnrnrn
Mybatis Mapper xml映射配置知识总结
写的很乱,可以参照着比较完整的看。      1、  SQL映射文件中的顶级元素    cache – 配置给定命名空间的缓存。                            eviction="FIFO"                   flushInterval="60000"                   size="512"         r
使用MyBatis Generator生成xml,Mapper
NULL 博文链接:https://m635674608.iteye.com/blog/2104218
Mybatis逆向生成Mapper、xml和实体
      最近公司项目比较多,需要我们快速开发节省时间,所以在创建实体和写sql上面我们就不能浪费太多的时间,于是就研究了一下mybatis的逆向生成功能,事实证明效率大幅提升,并且代码也很规范,所以在这分享给大家,写的不好的地方欢迎指出,相互交流。具体的步骤如下:1.先下载mybatis-generator-core-1.3.2.jar和mysql-connector-java-5.0.4-b...
mybatis自动生成xml,mapper,实体类文件工具
mybatis逆向工程文件,可以用该代码配置好数据库资源就可以连接数据库,便于操作。
mybatis从mapper接口传递参数到XML总结
待写
myBatis逆向生成JAVABean和Mapper文件及XML
转载文章地址:https://blog.csdn.net/fzy198926/article/details/79354860   之前老早我是在一个群里用过这个插件,今天本来是要手写JAVABean和Mapper类文件的。 光是一想就头疼啊。。十几个属性,五张表,这TM手写完。。再检查检查,今天就结束了啊。。 所以找一找之前用过的文件啥的,结果放在U盘了,,而U盘也没带。 找了很多篇文...
[MyBatis] Mapper XML实现简单的增删改查(三)
前言        MyBatis的真正强大之处就是他的Mapper映射文件,通过配置简单的xml就可以实现灵活的增删改查,这也是MyBatis相比其他ORM框架的优势。 SQL映射文件常用的元素如下:       select     映射查询语句       insert     映射插入语句       update  映射更新语句       delete   映射删除语句
Mybatis自动生成pojo、mapper、xml工具
Mybatis自动生成pojo、mapper、xml工具
访问XML文件路径问题???
rn 当我调用JAVASCRIPT的rn var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");rnxmlDoc.async="false";rnxmlDoc.load("http://localhost:8080/java/com/defaultroot/workday.xml");时rnrnIE老弹出警告窗口,信息如下面rn 该页正在访问其控制范围以外的信息。这有些危险。是否继续?rnrn按是的话,能正常访问该XML,但每次调都会弹出这个 很麻烦 有方法屏蔽吗?rnrn高手赐教???
mybatis之mybatis的mapper 代理开发规范
mybatis的mapper代理开发规范的大致流程图如下: 后期我将继续对该流程的具体代码实现进行一些分析,欢迎关注
【MyBatis】MyBatis找不到mapper文件
                                  MyBatis找不到mapper文件 用的Idea,在写MyBatis时,测试发现有以下的报错信息 Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource dao/PersonMapper.xml ...
JAEE 读写 XML文件路径问题
[code=SQL]rnrnrn我要做这样一个操作rnJSP页面 输入 一条字符串 (很小,简单的一些东西)比如:aaaaarnrnJava类执行 写入和读取操作rnrn写入 :rn要求保存到 web-inf目录或项目classPath目录下 rn我是这样写代码的rnString filePath = Thread.currentThread().getContextClassLoader().getResource("").getPath()+"My.xml";rn不加 Thread.currentThread().getContextClassLoader().getResource("").getPath() 可以写入rn加了就找不到路径rnjava.io.FileNotFoundException: E:\Documents%20and%20Settings\Administrator\Workspaces\MyEclipse%208.6\.metadata\.me_tcat\webapps\webopp\WEB-INF\classes\MySQLBinPath.xml (系统找不到指定的路径。)rn我觉得应该是取得的地址出现了乱码rn正确路径应该是:rnE:\Documents and Settings\Administrator\Workspaces\MyEclipse 8.6\.metadata\.me_tcat\webapps\webopp\WEB-INF\classes\rn该如何解决rnrn或者谁有更好的方法解决这一问题rnrnrn我的写入代码如下:rn XMLWriter writer = null;rn OutputFormat format = OutputFormat.createPrettyPrint();rn String filePath = Thread.currentThread().getContextClassLoader()rn .getResource("").getPath()+"MySQLBinPath.xml";rn File file = new File(filePath);rn SAXReader reader = new SAXReader();rn format.setEncoding("UTF-8"); rnrn Document _document = DocumentHelper.createDocument();rn Element _root = _document.addElement("MySQLBinPath");rn Element _path = _root.addElement("path");rn _path.setText(binPath);rnrn writer = new XMLWriter(new FileWriter(filePath), format);rn writer.write(document);rn writer.close();rn[/code]
maven工程xml文件路径问题
想了半天也不知道标题应该怎么起, 1、maven工程中的xml文件应该放在哪才能打包的时候打进去? 2、用sax解析文件时,如何确定文件的路径? 3、如何才能确保本地方法可以读取到本工程中的路径,但是打成jar包供别人调用方法的时候却找不到配置文件路径? 直接上代码和截图 maven工程下的配置文件统一放到src/main/resources下,这样默认会从这个路径下读取配置文件,然后在...
mybatis mapper 自动生成代码 generatorConfigMyBatis3
mybatis 自动生成代码工具,有使用说明,eclipse4.5.0自测可用
mybatis的自动生成mapper工具
mybatis自动生成工具,包括实体类,mapper,xml
Mybatis Mapper生成器示例
根据项目模块来生成对应的Mapper,这里采用Maven构建项目。Mybatis Generator插件怎么使用请参考:https://my.oschina.net/boonya/blog/719502。更多代码生成器介绍请参考:http://www.mybatis.org/generator/index.html
mybatis自动生成实体,mapper
mybatis自动生成实体和mapper的Java项目,下载后解压运行即可,我是用的idea运行
Mybatis之Mapper接口的实现原理
mybatis的mapper代理是用的jdk的动态代理,请看mybatis的如下代码:/** * Copyright 2009-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); * you may not use ...
MyBatis之动态sql语句和Mapper
MyBatis之动态sql语句和Mapper 1.什么是动态sql? 动态sql是mybatis的核心,主要是对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活的拼接、组装。 2.动态sql里面的标签 if 、choose (when ,otherwise) 、trim(where,set)、foreach 3.用动态sql实现查询 配置文件mybatis-config
MyBatis(二)mapper 代理
1.association & collection比如同时有A.java和B.java两个类,A.java如下: public class A{ private B b1; private List<B> b2; } 在映射b1属性时用association标签, 映射b2时用collection标签,分别是一对一,一对多的关系<有代理的步骤>1.mybatis-config.xm
Mybatis的使用(mapper接口方式)
使用 Mapper 接口的方式,不用写接口实现类,直接完成数据库操作,简单方便。 先上结构图: 下面是具体的代码: User.java实体类中的的get/set方法以及构造方法及toString方法就不贴了 public class User { private int id; private String name; private int age;UserMap
mybatis原理之mapper实现
Mybatis中一个非常重要的组件是mapper, 它担任了dao的角色,是业务逻辑层和数据库层的桥梁。那么在Mybatis中它是如何实现的呢? 在Mybatis应用中,mapper一般配置在Mybatis配置文件中,如下所示: xml version="1.0" encoding="UTF-8"?> configuration PUBLIC "-//my
Mybatis批量添加的mapper
Oracle数据库操作的批量添加任务写法参考<!-- 批量添加故障代码信息 --> <insert id="addlist" parameterType="java.util.List"> <!-- <selectKey keyProperty="errorId" resultType="java.lang.String" order="BEFORE">
MyBatis笔记——Mapper动态代理
前提概要 Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。 Mapper接口开发需要遵循以下规范: 1.Mapper.xml文件中的namespace与mapper接口的类路径相同。 2.Mapper接口方法名和Mapper.xml中定义的每个st...
Mybatis的mapper类的生效
 mapper由mybatis的插件生产的,在spring容器进行生效有2种: 1.spring扫描对应相应的目录,对应的Mapper的class上有@Repository,每生成一个mapper都要手动写一个注解很麻烦 @Repository   2.与第一种不同,插件生成的内容直接拷贝到对应的class目录上,在配置文件(一般在datasource.xml或者application文...
mybatis找不到mapper映射文件
mybatis默认找的映射文件路径是src/main/resources,如果放在src/main/java下的一个包中,则需要在该项目的pom.xml文件中加入: &amp;amp;amp;lt;build&amp;amp;amp;gt; &amp;amp;amp;lt;resources&amp;amp;amp;gt; &amp;amp;amp;lt;resource&amp;amp;amp;gt; &amp;amp;amp;lt;directory&amp;amp;amp;gt;s
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview