目录结构及配置文件与原始dao方法相比更简便

只需一个UserMapper的接口,放在一起的配置文件,配置文件中namespace的地址确定jdk动态代理的对象

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace:命名空间,用于隔离sql -->
<!-- 使用动态代理开发DAO,1. namespace必须和Mapper接口类路径一致 -->
<mapper namespace="com.swift.dao.UserMapper"><!-- 根据用户id查询用户 --><!-- 2. id必须和Mapper接口方法名一致 --><!-- 3. parameterType必须和接口方法参数类型一致 --><!-- 4. resultType必须和接口方法返回值类型一致 --><select id="queryUserByUsername" parameterType="String"resultType="com.swift.pojo.User">select * from user where username = #{username}</select>
</mapper>

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><properties resource="db.properties"></properties><environments default="development"><!-- 开发用数据源 --><environment id="development"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /></dataSource></environment></environments><!-- 加载sql映射文件 --><mappers><!-- 当把sql映射文件移到和接口文件(jdk代理的方式,无需实现类了)一个包下使用相同文件名(接口改名叫UserMapper.java不叫UserDao了),就可以使用class属性替换resource属性 --><!-- <mapper resource="mapper/UserMapper.xml" /> --><!-- <mapper class="com.swift.dao.UserMapper"/> --><!-- 如果有很多相同名字的接口和映射都放在这个包中,那给个包名就可以加载映射了 --><package name="com.swift.dao"/></mappers>
</configuration>

上边的配置文件和映射文件与以往的ssh框架类似

但还要搞懂Alias 别名

如果没留心这个,往往会让你晕晕的感觉,不明白谁是谁了,但一旦注意了,还是觉得蛮方便的

可以单个定义别名
<typeAlias alias="user" type="com.swift.pojo.User" />

就像给人其了小名,小名其实还是他,以后叫小名就行了

还可以用包批量定义别名

<package name="com.swift.dao" />
<package name="com.swift.pojo" />

那么这些包下的接口或类就都可以使用小名了(就是类名可以小写了,或者无所谓大小写)

但注意不要动 动态代理的那个类名,出BuilderException,造不出代理对象

新的配置文件

<?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><properties resource="db.properties"></properties><typeAliases><!-- 单个别名定义 --><!-- <typeAlias alias="user" type="com.swift.pojo.User" /> --><!-- 批量别名定义,扫描整个包下的类,别名为类名(大小写不敏感) --><package name="com.swift.dao" /><package name="com.swift.pojo" /></typeAliases><environments default="development"><!-- 开发用数据源 --><environment id="development"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /></dataSource></environment></environments><!-- 加载sql映射文件 --><mappers><!-- 当把sql映射文件移到和接口文件(jdk代理的方式,无需实现类了)一个包下使用相同文件名(接口改名叫UserMapper.java不叫UserDao了),就可以使用class属性替换resource属性 --><!-- <mapper resource="mapper/UserMapper.xml" /> --><!-- <mapper class="com.swift.dao.UserMapper"/> --><!-- 如果有很多相同名字的接口和映射都放在这个包中,那给个包名就可以加载映射了 --><package name="com.swift.dao"/></mappers>
</configuration>

配置文件属性的位置是固定的,因为约束,不能变动

映射文件如下:

不知道一定会懵的

转载于:https://www.cnblogs.com/qingyundian/p/9270976.html

Mybatis Mapper动态代理方式 typeAliases 别名的使用相关推荐

  1. 【Java】Mybatis mapper动态代理方式

    前言 我们在使用Mybatis的时候,获取需要执行的SQL语句的时候,都是通过调用xml文件来获取,例如:User user = (User) sqlSession.selectOne("c ...

  2. Spring 整合Mybatis Mapper动态代理方法

    先看项目目录结构 很清爽了 最重要的Spring的核心配置文件,看一下 <?xml version="1.0" encoding="UTF-8"?> ...

  3. Mybatis中Mapper动态代理方式

    文章目录 开发规范 Mapper接口开发需要遵循以下规范 Mapper.xml(映射文件) UserMapper(接口文件) 加载UserMapper.xml文件 总结 selectOne和selec ...

  4. MyBatis DAO层开发——Mapper动态代理方式

    SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE conf ...

  5. 02.Mybatis的动态代理方式实现增删改查

    动态代理的方式实现增删改查: 通过约定的方式定位sql语句 约定 > 配置文件 > 硬编码 约定的目标是省略掉通过硬编码的方式定位sql的代码,通过接口直接定位出sql语句,以下代码为通过 ...

  6. 原始dao和Mapper动态代理的开放方式---Mybatis学习笔记(六)

    1.原始Dao开发方式 原始Dao开发方法需要程序员编写Dao接口和Dao实现类. 1.映射文件:(user.xml) <?xml version="1.0" encodin ...

  7. Mybatis DAO开发--Mapper动态代理开发方式

    Mybatis DAO开发–Mapper动态代理开发方式 第一步:jar包 创建lib目录,引入相应的jar包,本节课用到的案例引入的jar包就是spring整合mybatis要用到的全部jar包. ...

  8. MyBatis之Mapper动态代理开发

    MyBatis之Mapper动态代理开发 2017/9/30 1.SqlSession的使用范围 1.SqlSessionFactoryBuilder SqlSessionFactoryBuilder ...

  9. 【Mybatis学习笔记】Mapper动态代理四项原则和注意事项

    如果使用原始的DAO,要自己对其进行实现,而如果使用Mybatis的Mapper动态代理,就可以让Mybatis自动帮你实现DAO接口. Mapper动态代理的四项原则 1.接口方法名需要与Mappe ...

最新文章

  1. java输出数组中出现的次数最多的那个及次数
  2. 大工18秋c c 语言程序设计,大工19秋《可编程控制器》在线作业3【满分答案】
  3. Android O 前期预研之二:HIDL相关介绍
  4. ASP.NET Core + Docker + Jenkins + gogs + CentOS 从零开始搭建持续集成
  5. 最新版dotnet-cli下的ASP.NET Core和asp.net mvc【RC2尝鲜】
  6. 口述完SpringMVC执行流程,面试官就让同事回家等消息了
  7. SpringAOP的几大通知
  8. ajaxSubmit的data属性
  9. rpath失效是怎么回事
  10. 24V单节锂电池充电芯片
  11. C# 解决上传附件大小限制
  12. webRTC(二十四):web远程多台android的实现
  13. 概念结构设计( 实体与属性的划分原则、E-R图的集成)、逻辑结构设计(任务、步骤、转换方法、数据模型的优化、设计用户子模式、物理结构设计)....
  14. 2019年8月13日 星期二 本周计划
  15. 高可用架构的技术变迁与演进经历了怎样的过程?
  16. 【mac】QQ截图不能用解决方法
  17. 深度强化学习-稀疏奖励及模仿学习-笔记(七)
  18. mc启动器没有找到java运行_我的世界无法启动游戏解决办法
  19. 浪潮服务器主机型号,浪潮英信服务器NF5270M5
  20. 基于SSM的旅游景点购票管理系统

热门文章

  1. 13计本人工智能第一次作业
  2. Delphi:校验手机号及身份证号
  3. 树莓派、debian 下安装 phantomjs casperjs
  4. windows API 菜鸟学习之路(三)
  5. C++项目中编译部分C的代码
  6. C++_类和对象_C++运算符重载_左移运算符重载_链式编程_实现直接打印对象---C++语言工作笔记056
  7. Netty工作笔记0075---handler链调用机制实例1
  8. Netty工作笔记0005---NIO介绍说明
  9. STM32工作笔记0090---ADC基本原理-M3
  10. STM32工作笔记0031---基于STM32F103C8自己实现的跑马灯实验_使用STLINK调试