0
点赞
收藏
分享

微信扫一扫

MyBatis框架之Dao代理(一)

waaagh 2022-03-30 阅读 77


Dao 代理实现数据库操作

步骤

(1) 去掉 Dao 接口实现类

MyBatis框架之Dao代理(一)_自定义

(2) getMapper 获取代理对象

只需调用 SqlSession 的getMapper()方法,即可获取指定接口的实现类对象。该方法的参数为指定Dao 接口类的 class 值。

​SqlSession session = factory.openSession();​

​StudentDao dao = session.getMapper(StudentDao.class);​

使用工具类:

​StudentDao studentDao = ​

​MyBatisUtil.getSqlSession().getMapper(StudentDao.class);​

getMapper()创建的对象,是代替我们自己创建的 StudentDaoImpl 类

(3) 使用 Dao 代理对象方法执行 sql 语句

select 方法:

MyBatis框架之Dao代理(一)_自定义_02

insert 方法:

MyBatis框架之Dao代理(一)_java_03

深入理解参数

从java 代码中把参数传递到mapper.xml 文件。

parameterType

parameterType: 接口中方法参数的类型, 类型的完全限定名或别名。这个属性是可选的,因为 MyBatis 可以推断出具体传入语句的参数,默认值为未设置(unset)。

接口中方法的参数从java 代码传入到 mapper 文件的sql 语句。

int 或 java.lang.Integer 

hashmap 或 java.util.

HashMap list 或 java.util.ArrayList

student 或 com.bjpowernode.domain.Student  

< select >,< insert >,< update >,< delete > 都可以使用parameterType 指定类型。

例如:

​​image.png​​

一个简单参数

Dao 接口中方法的参数只有一个简单类型(java 基本类型和String),占位符 #{ 任意字符 },和方法的参数名无关。

接口方法:

MyBatis框架之Dao代理(一)_自定义_04

测试方法:

​​image.png​​

多个参数-使用@Param

当Dao 接口方法多个参数,需要通过名称使用参数。 在方法形参前面加入@Param(“自定义参数名”),mapper 文件使用#{自定义参数名}。

例如定义

List< Student > selectStudent( @Param(“personName”) 

String name ) { … }

             mapper 文 件 select * from student where name = 

#{ personName}

接口方法

MyBatis框架之Dao代理(一)_自定义_05

mapper 文件

MyBatis框架之Dao代理(一)_sql_06

测试方法

MyBatis框架之Dao代理(一)_sql_07

举报

相关推荐

0 条评论