Mybatis - 在idea中错误:Invalid bound statement (not found)

在学习Mybatis时遇到一个问题,即在IDEA中测试mapper自动代理功能失败,而同样的代码在Eclipse中正常工作。原因是IDEA默认不会把源代码目录下的xml资源文件编译进classes文件夹,而Eclipse则会。解决方案包括将xml文件移至resource目录或在maven的resources配置中包含这些文件。通过配置maven的资源过滤,可以确保XML文件被正确处理和打包。

学习mybatis的过程中,测试mapper自动代理的时候一直出错,在eclipse中可以正常运行,而同样的代码在idea中却无法成功。虽然可以继续调试,但心里总是纠结原因。百度了好久,终于找到一个合适的原因。参

原因:(参考:http://www.linuxidc.com/Linux/2015-06/118877.htm)

IDEA的maven项目中,默认源代码目录下的xml等资源文件并不会在编译的时候一块打包进classes文件夹,而是直接舍弃掉。

如果使用的是Eclipse,Eclipse的src目录下的xml等资源文件在编译的时候会自动打包进输出到classes文件夹。Hibernate和Spring有时会将配置文件放置在src目录下,编译后要一块打包进classes文件夹,所以存在着需要将xml等资源文件放置在源代码目录下的需求。

解决:

方法1:将xml或properties等配置文件放到resource下,并修改获取配置文件的代码,比如注册mapper.xml的位置等;

方法2:在maven中添加过滤:

<!--配置Maven 对resource文件 过滤 -->

<resources>

<resource>

<directory>src/main/resources</directory>

<includes>

<include>**/*.properties</include>

<include>**/*.xml</include>

</includes>

<filtering>true</filtering>

</resource>

<resource>

<directory>src/main/java</directory>

<includes>

<include>**/*.properties</include>

<include>**/*.xml</include>

</includes>

<filtering>true</filtering>

</resource>

</resources>

我采用mybatis的自动代理设置,将mapper文件和xml文件同名同包下,并在sqlMap.xml(mybatis-config.xml)中配置mapper自动注册扫描包:

<mappers>

<mapper resource="sqlmap/User.xml"/>

<!--通过resource方法一次加载一个映射文件 -->

<!--<mapper resource="sqlmap/UserMapper.xml"/>-->

<!-- 通过mapper接口加载单个 映射文件

遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录 中

上边规范的前提是:使用的是mapper代理方法

-->

<!--<mapper class="cn.itcast.mybatis.mapper.UserMapper"/>-->

<!-- 批量加载mapper

指定mapper接口的包名,mybatis自动扫描包下边所有mapper接口进行加载

遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录 中

上边规范的前提是:使用的是mapper代理方法

-->

<package name="cn.itcast.mybatis.mapper"/>

</mappers>

不管是在多modul 下进行配置还是单个工程下,均是这样配置;

idea 的 多modul 下 ,只需要在 root 项目的 maven 下进行配置即可! 当然配置在 pom.xml 中的  标签下!

example :

<build>

<plugins>

<plugin>

<groupId>org.mortbay.jetty</groupId>

<artifactId>maven-jetty-plugin</artifactId>

<version>6.1.7</version>

<configuration>

<connectors>

<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">

<port>8888</port>

<maxIdleTime>30000</maxIdleTime>

</connector>

</connectors>

<webAppSourceDirectory>${project.build.directory}/${pom.artifactId}-${pom.version}</webAppSourceDirectory>

<contextPath>/</contextPath>

</configuration>

</plugin>

</plugins>

<!--这里进行配置,后会自动的加载mapper.xml文件 :配置Maven 对resource文件 过滤 -->

<resources>

<resource>

<directory>src/main/resources</directory>

<includes>

<include>**/*.properties</include>

<include>**/*.xml</include>

</includes>

<filtering>true</filtering>

</resource>

<resource>

<directory>src/main/java</directory>

<includes>

<include>**/*.properties</include>

<include>**/*.xml</include>

</includes>

<filtering>true</filtering>

</resource>

</resources>

</build>

Mybatis - 在idea中错误:Invalid bound statement (not found)

到目前为止, 尽管电子商务还没有一个统一的的定义,专家们也在为它的精确定义而争论不休。但这并不妨碍我们对电子商务真正含义的理解。电 子商务在英文中有两个说法,一个是E-Business,另一个是E-Commerce。前者指广义的电子商务,后者指电子贸易,即狭义的电子商务,是前 者的一部分。 E-Business不仅是电子买卖商品,而且包括服务顾客和与商业伙伴协作,从而在组织内外从事电子交易。电子商务包括一个商业组织通过计算机网络从事 的任何活动。商业组织包括任何赢利的、政府的或非赢利的实体。活动包括针对生产、顾客、内部和管理的商业过程。E-Commerce定义为运用电子媒介 (通讯)从事交换,即买卖产品和服务,这一过程需要从一个地点到另一个地点的物理或电子运输,也被称为电子贸易。电子贸易并不能充分涵盖通过通讯设备发生 的许多类型的信息交换的真正本质,E-Business还包括并不直接与实际的买卖商品相关的信息交换。商务中越来越多地运用电子手段传递信息和提供顾客 服务,这些活动是商务(business)而不是贸易(commerce)。电子商务(Electronic Commerce, EC)这个概念起源于20世纪60年代随着国际互联网的快速崛起和迅猛发展,计算机之间的互联需求越来越迫切,随着计算机网络的快速发展,人们意识的利用计算网络的先进性和即时性能更好的服务自己的工作、生活和商业活动等。运用计算专业知识和技能进行电子商务在线商店程序设计,来体现学习的成果是一件很有意义的事。本系统是计算机科学技术在商务领域中的一个应用。它改变了传统经营方式通过internet网络向全世界的人展示商品的信息,用计算机和网络实现最低的成本完成商品的展示销售等工作,使管理更方便、快捷、规范、准确。同时将改变我们对信息的再利用分析能力,使数据进行集中管理,达到资源共享,及时利用的目的。本系统采用B/S结构,以目前在WEB开发方面最流行的三层架构体系为基础(用户层—业务层—数据层):系统运行在Windows 2000以上的操作系统上,考虑的数据库的性能和维护等方面的综合因素,决定采用微软公司的SQL 2000 Server数据库服务器软件,提供采集数据的更新、修改、和查询。本系统开发环境构成:开发工具SQL 2000 Server,Visual Studio .NET 2003 。本系统目前主要实现以下功能:一是进行商品的库存管理;二是对商品的进行展示;三是系统的登录安全管理;四是对商品的销售进行全自动的计算机管理;五是及时提供商品的销售情况统计信息,方便管理者分析市场。本系统的采用的是目前最流行WEB方式的应用程序,方便用户直观的了解和操作购物的流程,使消费者能轻松了解系统的使用方法,完成一个越快的在家中直接购物的过程。接下来的各部分将分析、描述和编写代码来实现这个系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值