Mybatis Mapper动态代理方式 typeAliases 别名的使用
目录结构及配置文件与原始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 别名的使用相关推荐
- 【Java】Mybatis mapper动态代理方式
前言 我们在使用Mybatis的时候,获取需要执行的SQL语句的时候,都是通过调用xml文件来获取,例如:User user = (User) sqlSession.selectOne("c ...
- Spring 整合Mybatis Mapper动态代理方法
先看项目目录结构 很清爽了 最重要的Spring的核心配置文件,看一下 <?xml version="1.0" encoding="UTF-8"?> ...
- Mybatis中Mapper动态代理方式
文章目录 开发规范 Mapper接口开发需要遵循以下规范 Mapper.xml(映射文件) UserMapper(接口文件) 加载UserMapper.xml文件 总结 selectOne和selec ...
- MyBatis DAO层开发——Mapper动态代理方式
SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE conf ...
- 02.Mybatis的动态代理方式实现增删改查
动态代理的方式实现增删改查: 通过约定的方式定位sql语句 约定 > 配置文件 > 硬编码 约定的目标是省略掉通过硬编码的方式定位sql的代码,通过接口直接定位出sql语句,以下代码为通过 ...
- 原始dao和Mapper动态代理的开放方式---Mybatis学习笔记(六)
1.原始Dao开发方式 原始Dao开发方法需要程序员编写Dao接口和Dao实现类. 1.映射文件:(user.xml) <?xml version="1.0" encodin ...
- Mybatis DAO开发--Mapper动态代理开发方式
Mybatis DAO开发–Mapper动态代理开发方式 第一步:jar包 创建lib目录,引入相应的jar包,本节课用到的案例引入的jar包就是spring整合mybatis要用到的全部jar包. ...
- MyBatis之Mapper动态代理开发
MyBatis之Mapper动态代理开发 2017/9/30 1.SqlSession的使用范围 1.SqlSessionFactoryBuilder SqlSessionFactoryBuilder ...
- 【Mybatis学习笔记】Mapper动态代理四项原则和注意事项
如果使用原始的DAO,要自己对其进行实现,而如果使用Mybatis的Mapper动态代理,就可以让Mybatis自动帮你实现DAO接口. Mapper动态代理的四项原则 1.接口方法名需要与Mappe ...
最新文章
- java输出数组中出现的次数最多的那个及次数
- 大工18秋c c 语言程序设计,大工19秋《可编程控制器》在线作业3【满分答案】
- Android O 前期预研之二:HIDL相关介绍
- ASP.NET Core + Docker + Jenkins + gogs + CentOS 从零开始搭建持续集成
- 最新版dotnet-cli下的ASP.NET Core和asp.net mvc【RC2尝鲜】
- 口述完SpringMVC执行流程,面试官就让同事回家等消息了
- SpringAOP的几大通知
- ajaxSubmit的data属性
- rpath失效是怎么回事
- 24V单节锂电池充电芯片
- C# 解决上传附件大小限制
- webRTC(二十四):web远程多台android的实现
- 概念结构设计( 实体与属性的划分原则、E-R图的集成)、逻辑结构设计(任务、步骤、转换方法、数据模型的优化、设计用户子模式、物理结构设计)....
- 2019年8月13日 星期二 本周计划
- 高可用架构的技术变迁与演进经历了怎样的过程?
- 【mac】QQ截图不能用解决方法
- 深度强化学习-稀疏奖励及模仿学习-笔记(七)
- mc启动器没有找到java运行_我的世界无法启动游戏解决办法
- 浪潮服务器主机型号,浪潮英信服务器NF5270M5
- 基于SSM的旅游景点购票管理系统
热门文章
- 13计本人工智能第一次作业
- Delphi:校验手机号及身份证号
- 树莓派、debian 下安装 phantomjs casperjs
- windows API 菜鸟学习之路(三)
- C++项目中编译部分C的代码
- C++_类和对象_C++运算符重载_左移运算符重载_链式编程_实现直接打印对象---C++语言工作笔记056
- Netty工作笔记0075---handler链调用机制实例1
- Netty工作笔记0005---NIO介绍说明
- STM32工作笔记0090---ADC基本原理-M3
- STM32工作笔记0031---基于STM32F103C8自己实现的跑马灯实验_使用STLINK调试