(手写)mybatis 核心配置文件和接口不在同一包下的解决方案

smart-sh-mybatis项目

app.xml文件中此处配置为:
 1 <!-- 从整合包里找,org.mybatis:mybatis-spring:1.2.4 -->
 2 <!-- sqlSessionFactory -->
 3 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
 4     <!-- 数据库连接池 -->
 5     <property name="dataSource" ref="dataSource" />
 6     <!-- 加载mybatis的全局配置文件 -->
 7     <property name="configLocation" value="classpath:mybatis.xml" />
 8     <!-- 扫描对应的mapper的xml文件位置 -->
 9     <property name="mapperLocations" value="classpath*:com/smart/**/*.xml" />
10 </bean>
11 <!-- mapper扫描器 -->
12 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
13     <!-- 配置mapper接口存储的包,用来扫描Mapper接口,如果需扫描多个中间可使用半角逗号隔开
14      如果当前mapper接口和xml文件在同一个包下,则不需配置上面的mapperLocations指定扫描的xml位置-->
15     <property name="basePackage" value="com.smart"/>
16     <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
17     <!-- <property name="sqlSessionFactory" ref="sqlSessionFactory" />
18     会导致数据源配置不管用,数据库连接不上。
19     且spring 4弃用
20     -->
21 </bean>
其中,
    <property name="mapperLocations" value="classpath*:com/smart/**/*.xml" />用来配置xml文件的扫描路径,
    <property name="basePackage" value="com.smart"/>用来配置接口bean的扫描路径,-------------------------idea中对于src/main/java代码路径下的xml配置文件在默认编译时,是是不会执行编译的,1. 将xml文件放到resource下面且xml的文件夹名称起名和java中对应的接口对应一致即可,目的就是在idea编译时将所对应的文件和接口bean还编译到一个文件夹下,但这不符合最初bean接口和sql.xml配置文件放置在不同包下的初衷,且不符合最初将xml和bean作为dao的基础类放到java主目录下的初衷,2. pom.xml中增加如下代码块:
 1 <build>
 2   <finalName>smart-sh-mybatis</finalName>
 3   <resources>
 4     <!-- idea的maven项目在编译的时候,需手动指定src/main/java下的xml配置文件被包含编译include,否则main/java下的
 5      xml配置文件,默认为不编译,因为一般情况下xml的配置文件均是存在于resources目录下,此处是将mybatis的sql.xml的
 6      映射文件放到了对应的main/java下 ,所以此处需手动指定包含即可。-->
 7     <resource>
 8       <!-- basedir maven内置变量,表示项目根目录 -->
 9       <directory>${basedir}/src/main/java</directory>
10       <includes>
11         <include>**/*.xml</include>
12       </includes>
13     </resource>
14   </resources>
15 </build>
即在idea中的maven程序在执行代码编译时是走的maven编译的效果,所以此处增加pom.xml中编译时的说明即可,如上,即在编译build构建项目/src/main/java模块时,包含目录下的*.xml文件一起构建编译。


原文地址:https://www.cnblogs.com/zh94/p/9225804.html

时间: 2024-08-26 00:15:24

(手写)mybatis 核心配置文件和接口不在同一包下的解决方案的相关文章

了解mybatis源码手写mybatis

一:mybatis概述 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录. 二:手写mybatis 实现思路:: 1创建SqlSessionFactory实例 2:实例化过程中,加载配置

手写Mybatis,彻底搞懂框架原理

mybatis的前身是iBatis,其源于"Internet"和"abatis"的组合,是一款优秀的持久层框架,它支持定制化SQL.存储过程以及高级映射.mybatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集,它可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJO映射成数据库中的记录. Mybatis的架构设计Mybatis的功能架构分为三层: 接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库.接口层接

MyBatis学习总结(二)——MyBatis核心配置文件与输入输出映射

一.MyBatis配置文件概要 MyBatis核心配置文件在初始化时会被引用,在配置文件中定义了一些参数,当然可以完全不需要配置文件,全部通过编码实现,该配置文件主要是是起到解偶的作用.如第一讲中我们用到conf.xml文件: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN&

手写MyBatis,纯手工打造开源框架(第四篇:决胜千里)- 第272篇

说明 MyBatis版本:3.5.1 相关历史文章(阅读本文之前,您可能需要先看下之前的系列) Spring Boot MyBatis最全教程:你值得拥有MyBatis能脱离Spring吗一图纵览MyBatis的工作原理从源码看MyBatis,竟如此简单MyBatis的Mapper是什么`垃圾` 手写MyBatis,纯手工打造开源框架(第一篇:风云再起) 手写MyBatis,纯手工打造开源框架(第二篇:君临天下) 手写MyBatis,纯手工打造开源框架(第三篇:运筹帷幄) 前言        运

手写MyBatis ORM框架实践

一.实现手写Mybatis三个难点 1.接口既然不能被实例化?那么我们是怎么实现能够调用的? 2.参数如何和sql绑定 3.返回结果 下面是Mybatis接口 二.Demo实现 1.创建Maven工程(开发工具Eclipse) 下一步 下一步 然后点击“完成” 2.配置pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema

代码片段,得到所有实现接口且在同包下的类

/** * 得到所有实现接口而且在同包下的的类 * @param aClass * @return * @throws IOException * @throws ClassNotFoundException */ public List<Class> getImplClass(Class aClass) throws IOException, ClassNotFoundException { List<Class> list = new ArrayList<>();

攻占SSM之手写Mybatis的xml实现Dao层接口

上午写了一个简单的 从xml读取信息实例化一个Bean对象.下午就开始想mybatis是怎么通过xml文件来实现dao层接口的,一开始想直接用Class.forName(String name)然后调用getMethods的办法来得到Dao接口所有的方法Method,结果证明这对接口实没有用的,会报一个错误.于是想百度,但是百度的结果全是怎么配置mapper的..然后我又四处翻资料,终于找到一些办法.最后我还是用到了我自己封装的DButil 和 DataUtil两个类. 反正我是这么实现的,至于

mybatis核心配置文件约束

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> </configuration> 原文地

Spring+SpringMVC +MyBatis整合配置文件案例66666

Spring+SpringMVC +MyBatis整合配置文件案例 标签: springspringmvcmybatismvcjava 2017-04-13 19:12 228人阅读 评论(1) 收藏 举报 分类: java_javaSE(2) 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] Spring+SpringMVC +MyBatis整合配置文件案例 针对spring/SpringMVC/MyBatis三个框架的整合有很多的方式,经过最近的学习我来总结一下其配置文