Mapper动态代理方式的CRUD(增删改查)(MyBatis接口开发)
Mapper动态代理方式的增删改查(MyBatis接口开发):
- 原理:Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法(此处摘自于笔者应该是个妹子)
- 原则:约定优于配置
硬编码方式:
abc.java
Configuration conf = newConfiguration(); conf.setName("myProject");
-
配置方式:
abc.xml
<name>myProject</name>
-
约定:默认值就是myProject
具体实现步骤:
-
基础环境:mybatis.jar、mysql-connector.jar、conf.xml、mapper.xml
-
(不同之处)
约定的目标:省略掉statement,即根据约定,直接可以定位出SQL语句 (用MyBatis接口没开发)
对于接口而言:接口中的方法必须遵守以下约定:1.接口的方法名和Mapper.xml文件中标签的id值相同
2.方法的输入参数和Mapper.xml文件中标签的parameterType类型一致(无parameterType,则方法没有输入参数)
3.方法的返回值和Mapper.xml文件中标签的resultType类型一致(无论查询结果为一个还是多个(Student、List),在Mapper.xml文件标签中的resultType都只写一个(Student);如果没有resultType,则方法的返回值为void)习惯:SQL映射文件(Mapper.xml)和接口放在同一个包中
除了以上约定,要实现 接口中的方法 和 Mapper.xml中SQL标签一一对应,还需以下一点:
namespace的值,就是 接口的全类名(接口和mapper.xml一一对应)
匹配的过程:(约定的过程)
1.根据 接口名 找到 Mapper.xml文件(根据的是namespace=接口的全类名)
2.根据 接口中的方法名 找到 Mapper.xml文件中的SQL标签(方法名=SQL标签的id值)
以上两点可以保证:当调用接口的方法时,程序能自动定位到 某个Mapper.xml文件中的SQL标签
测试
以上,可以通过接口的方法->SQL语句(接口的实现类由mybatis在底层给我们实现)
执行:
接口 A = session.getMapper(接口.class);
A.方法();
通过session对象获取接口(session.getMapper(接口.class)),再调用该接口中的方法,程序会自动执行该方法对应的SQL语句。
优化:
-
可以将配置信息 单独放入db.properties文件中,然后再动态引入
db.properties文件中: key=value
引入:
<configuration> <properties resource="db.properties" />
引入之后,使用
${key},如:
<property name="driver" value="${driver}"/>
2.MyBatis全局参数
在conf.xml中设置
<settings> <setting name="cacheEnabled" value="false"/> <setting name="lazyLoadingEnabled" value="false"/> </settings>
3.别名
设置单个/多个别名:
<!-- 设置单个/多个别名 --> <typeAliases> <!-- 设置单个别名(别名,可以忽略大小写) --> <!--<typeAlias type="com.ph.main.dao.Student"alias="ReStudent"/>--> <!-- 批量定义别名(别名,可以忽略大小写) , 以下会自动将该包中的所有类批量定义别名:别名就是类名(不带包名 ,可忽略大小写)--> <package name="com.ph.main.dao"/> </typeAliases>
除了自定义别名外,MyBatis还内置了一些常见类的别名。
- 【MyBatis】03.接口开发 动态代理方式的CRUD
- mybatis3整合spring4-采用mapper动态代理的方式开发Dao
- mybatis CRUD之Mapper代理开发模式(接口实现 不需要实现类)
- MyBatis学习记录(3):Mapper动态代理方式开发DAO
- Java EE开发平台随手记5——Mybatis动态代理接口方式的原生用法
- mybatis之入门到开发(四)之 Mapper动态代理方式
- Mybatis(二)— 使用Mapper动态代理方式进行开发
- 基于mapper的动态代理的开发方式——MyBatis的第二种开发方式
- MyBatis开发Dao层的两种方式(Mapper动态代理方式)
- 详解MyBatis开发Dao层的两种方式(Mapper动态代理方式)
- mybatis--开发Dao--原始dao方式和Mapper代理方式
- JavaEE_Mybatis_SpringMVC_整合开发_lesson2_Mapper代理开发方式
- Mybatis之Mapper代理开发方式(四)
- Mybatis 使用Mapper接口的Sql动态代码方式进行CURD和分页查询
- Mybatis框架学习二——DAO开发方式和Mapper代理的开发方式
- MyBatis中Mapper代理开发方式
- Spring与MyBatis整合上_Mapper动态代理方式
- JAVAWEB开发之mybatis详解(一)——mybatis的入门(实现增删改查操作)、自定义别名、抽取代码块以及动态SQL的使用
- Mybatis Mapper动态代理方法 即 只写Dao接口 不谢Dao的实现类
- SprignMVC+myBatis整合+mybatis源码分析+动态代理实现流程+如何根据mapper接口生成其实现类