返回顶部
首页 > 资讯 > 精选 >MyBatis中DAO代理怎么使用
  • 680
分享到

MyBatis中DAO代理怎么使用

2023-06-29 22:06:46 680人浏览 八月长安
摘要

这篇文章主要介绍了mybatis中DAO代理怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MyBatis中DAO代理怎么使用文章都会有所收获,下面我们一起来看看吧。DAO代理实现数据库操作1、去掉Dao

这篇文章主要介绍了mybatis中DAO代理怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MyBatis中DAO代理怎么使用文章都会有所收获,下面我们一起来看看吧。

    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方法进行查询

    @Testpublic void testSelect() throws IOException { final List<Student> studentList = studentDao.selectStudents(); studentList.forEach( stu -> System.out.println(stu));}

    insert方法进行插入

    @Testpublic void testInsert() throws IOException { Student student = new Student(); student.setId(1006); student.setName("林浩"); student.setEmail("linhao@163.com"); student.setAge(26); int nums = studentDao.insertStudent(student); System.out.println("使用 Dao 添加数据:"+nums);}

    4、深入理解参数

    从 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 指定类型。

    eg:

    <delete id="deleteStudent" parameterType="int"> delete from student where id=#{studentId}</delete>等同于<delete id="deleteStudent" parameterType="java.lang.Integer"> delete from student where id=#{studentId}</delete>

    一个简单参数

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

    接口方法

    Student selectById(int id);

    mapper文件

    <select id="selectById" resultType="com.bjpowernode.domain.Student"> select id,name,email,age from student where id=#{studentId}</select>

    #{studentId} , studentId 是自定义的变量名称,和方法参数名无关。

    测试方法

    @Testpublic void testSelectById(){ //一个参数  Student student = studentDao.selectById(1005); System.out.println("查询 id 是 1005 的学生:"+student);}

    使用@Param

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

    例如定义 List<Student> selectStudent( @Param(“personName”) 

    String name ) { … } 

    mapper 文件 select * from student where name = 

    #{ personName}

    接口方法

    List<Student> selectMultiParam(@Param("personName") String name, @Param("personAge") int age);

    Mapper文件

    <select id="selectMultiParam" resultType="com.bjpowernode.domain.Student"> select id,name,email,age from student where name=#{personName} or age =#{personAge}</select>

    测试方法

    @Testpublic void testSelectMultiParam(){ List<Student> stuList = studentDao.selectMultiParam("李力",20); stuList.forEach( stu -> System.out.println(stu));}

    使用对象

    使用 java 对象传递参数, java 的属性值就是 sql 需要的参数值。 每一个属性就是一个参数。

    语法格式: #{ property,javaType=java 中数据类型名

    jdbcType=数据类型名称 } javaType, jdbcType 的类型 MyBatis 可以检测出来,一般不需要设置。常用格式 #{ property }

    MyBatis中DAO代理怎么使用

     创建保存参数值的对象 QueryParam

    package com.bjpowernode.vo; public class QueryParam { private String queryName; private int queryAge; //set ,get 方法}

    接口方法

    List<Student> selectMultiObject(QueryParam queryParam);

    Mapper文件

    <select id="selectMultiObject" resultType="com.bjpowernode.domain.Student"> select id,name,email,age from student where name=#{queryName} or age =#{queryAge}</select>或<select id="selectMultiObject" resultType="com.bjpowernode.domain.Student"> select id,name,email,age from student where name=#{queryName,javaType=string,jdbcType=VARCHAR} or age =#{queryAge,javaType=int,jdbcType=INTEGER}</select>

    测试方法

    @Testpublic void selectMultiObject(){ QueryParam qp = new QueryParam(); qp.setQueryName("李力"); qp.setQueryAge(20); List<Student> stuList = studentDao.selectMultiObject(qp); stuList.forEach( stu -> System.out.println(stu));}

    关于“MyBatis中DAO代理怎么使用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“MyBatis中DAO代理怎么使用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

    --结束END--

    本文标题: MyBatis中DAO代理怎么使用

    本文链接: https://lsjlt.com/news/326519.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • MyBatis中DAO代理怎么使用
      这篇文章主要介绍了MyBatis中DAO代理怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MyBatis中DAO代理怎么使用文章都会有所收获,下面我们一起来看看吧。DAO代理实现数据库操作1、去掉Dao...
      99+
      2023-06-29
    • MyBatis详细讲解DAO代理的使用
      目录DAO代理实现数据库操作1、去掉Dao接口实现类2、getMapper获取代理对象3、使用 Dao 代理对象方法执行 sql 语句4、深入理解参数parameterType一个简...
      99+
      2024-04-02
    • Java之MyBatis的Dao方式以及Dao动态代理详解
      目录MyBatis传统Dao方式以及Dao动态代理MyBatis传统Dao方式MyBatis之Dao动态代理总结MyBatis简介以及入门参见以下文章 MyBatis简介及入门 1、...
      99+
      2022-12-21
      Java MyBatis MyBatis的Dao方式 MyBatis Dao动态代理
    • 使用MyBatis如何实现Dao开发
      本篇文章为大家展示了使用MyBatis如何实现Dao开发,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.SqlSession使用范围1.1 SqlsessionFactoryBuilder通过Sq...
      99+
      2023-05-31
      mybatis dao
    • Hibernate DAO类怎么使用
      这篇文章主要讲解了“Hibernate DAO类怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hibernate DAO类怎么使用”吧!在Struts分页有两种结构: 在Action...
      99+
      2023-06-17
    • DAO类怎么用
      这篇文章主要介绍“DAO类怎么用”,在日常操作中,相信很多人在DAO类怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”DAO类怎么用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!Dao使用了Sprin...
      99+
      2023-06-26
    • 使用MyBatis Generator自动生成DAO以及实体类
      generatorConfig.xml文件:<xml version="1.0" encoding="UTF-8" ><!DOCTYPE generatorConfiguration PU...
      99+
      2024-04-02
    • MyBatis的Dao层怎么实现和配置文件
      本篇内容主要讲解“MyBatis的Dao层怎么实现和配置文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MyBatis的Dao层怎么实现和配置文件”吧!Mybatis的Dao层实现传统开发方式...
      99+
      2023-07-02
    • Mybatis中怎么利用 mapper实现动态代理
      Mybatis中怎么利用 mapper实现动态代理,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。前言在开始动态代理的原理讲解以...
      99+
      2024-04-02
    • MyBatis中怎么使用SQL片段重用SQL代码
      在MyBatis中使用SQL片段可以通过定义一个标签来重用SQL代码。这样可以避免重复编写相同的SQL代码,提高代码的复用性和可维护...
      99+
      2024-05-08
      MyBatis
    • 怎么在Springboot中使用mybatis
      今天就跟大家聊聊有关怎么在Springboot中使用mybatis,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。前期工作1.导入mybatis整合依赖<!-- &nb...
      99+
      2023-06-14
    • 怎么在mybatis中使用resultmap
      本篇文章给大家分享的是有关怎么在mybatis中使用resultmap,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。SQL 映射XML 文件是所有sql语句放置的地方。需要定义...
      99+
      2023-05-31
      mybatis resultmap
    • 怎么在SpringBoot中使用Mybatis-Plus自动代码生成
      本篇文章为大家展示了怎么在SpringBoot中使用Mybatis-Plus自动代码生成,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。springboot是什么springboot一种全新的编程规范...
      99+
      2023-06-14
    • Fedora中怎么使用Gnu PG代理
      本篇内容主要讲解“Fedora中怎么使用Gnu PG代理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Fedora中怎么使用Gnu PG代理”吧!有时使用某个应用程序的时候,你需要非常频繁地使用...
      99+
      2023-06-16
    • 怎么在Spring Boot中使用MyBatis
      这篇文章将为大家详细讲解有关怎么在Spring Boot中使用MyBatis,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。orm框架的本质是简化编程中操作数据库的编码,发展到现在基本上就剩两...
      99+
      2023-05-31
      springboot mybatis
    • MyBatis中int和Integer怎么使用
      这篇文章主要介绍“MyBatis中int和Integer怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MyBatis中int和Integer怎么使用”文章能帮助大家解决问题。有关int和In...
      99+
      2023-07-05
    • MyBatis中怎么使用原生SQL
      在MyBatis中使用原生SQL可以通过使用<select>, <insert>, <upd...
      99+
      2024-03-07
      MyBatis
    • mybatis中keyproperty属性怎么使用
      在MyBatis中,keyProperty属性用于指定一个属性,该属性的值将被插入或更新后生成的主键值所填充。通常用于自动生成主键的...
      99+
      2024-03-12
      mybatis
    • MyBatis中动态SQL怎么使用
      在MyBatis中,动态SQL可以通过使用if、choose、when、otherwise、foreach等标签来实现。这些标签可以...
      99+
      2024-04-20
      mybatis
    • mybatis中sql片段怎么使用
      在MyBatis中,可以使用SQL片段来复用一些重复的SQL代码段。SQL片段可以在MyBatis的XML配置文件中定义,在需要使用...
      99+
      2024-05-21
      mybatis sql
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作