mybatis 之 占位符#{} 和 ${}
发布日期:2021-08-21 02:35:04 浏览次数:14 分类:技术文章

本文共 1841 字,大约阅读时间需要 6 分钟。

  1. #{}占位符用来设置参数,参数的类型可以有3种,基本类型,自定义类型,map基本类型作为参数,参数与占位符中的名称无关。

    测试:

    @Test    public void testSelectOne(){        Role role = (Role)session.selectOne("cn.wh.mapper.RoleMapper.findById",1);        System.out.println(role.getName());    }

    自定义类型作为参数,自定义类中需要为为属性提供get方法,如果没有提供get方法,那么会根据占位符中的名称去反射获取值,如果占位符中的名称和属性不一致,那么报ReflectionException。

    测试:

    @Test    public void testPage1(){        PageUtil pu = new PageUtil();        pu.setIndex(3);        pu.setSize(3);        List
    list = session.selectList("cn.wh.mapper.RoleMapper.findListBypage", pu); for(Role r:list){ System.out.println(r.getName()); } }

    Map作为参数类型,key和占位符中的名称一致即可,如果名称不一致那么将会把null,传递到占位符中。

    注意:#{}占位符不能解决一下 3 类问题:

    表名是动态的: Select * from #{table_name}

    列名是动态的:Select #{column_name} from t_role

    排序列是动态的: Select * from t_role order by #{columu}

 

 

  1. ${}占位符是字符串连接符,可以用来动态设置表明,列名,排序名

    ${}参数不能为基本数据类型,只能为自定义类型和map

    测试:

    @Test    public void testSelectList(){        Map
    map = new HashMap
    (); map.put("tableName", "t_role"); List
    list = session.selectList("cn.wh.mapper.RoleMapper.findAll",map); for(Role role:list){ System.out.println(role.getId()+"----"+role.getName()); } }

    作为连接符使用:

    测试:

    @Test    public void testLike2(){        Map
    map = new HashMap
    (); map.put("name", "黄"); List
    list = session.selectList("cn.wh.mapper.RoleMapper.selectLike1",map); for(Role r:list){ System.out.println(r.getName()); } }

转载地址:https://blog.csdn.net/weixin_33708432/article/details/86253189 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Tomcat 没有自动解压webapp下的war项目文件问题
下一篇:C++模板的特化

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年03月27日 15时18分11秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

php读取大文件某行内容,PHP读取和修改大文件的某行内容_PHP教程 2019-04-21
打印php错误日志,php怎样打印错误日志 2019-04-21
Calendar导入java,Java程序使用Calendar.add()方法将分钟添加到当前时间 2019-04-21
mysql中用户线程作用,mysql用户线程的建立与用户线程的状态源码解析 2019-04-21
php页面引用公共文件,WeiPHP插件模板中快速引入公共模板文件 2019-04-21
php tracy,admin.php 2019-04-21
php访问父类的所有属性,php – 在父类中使用$this仅在子类中显示父类属性 2019-04-21
oracle比较强大的函数,SQL和ORACLE函数比较 2019-04-21
oracle12c order by,oracle 数据库中order by 的一些高级用法 2019-04-21
oracle8i substr,Oracle中的INSTR,NVL和SUBSTR函数的用法详解 2019-04-21
导出oracle11g的空表,轻松解决oracle11g 空表不能 exp 导出 的问题。 2019-04-21
php把整数拆分成数组,数组拆分处理(整数时的处理),该怎么处理 2019-04-21
oracle numlist,oracle sql str2numlist numtabletype 2019-04-21
php红包平均分配,红包平均分配算法 2019-04-21
linux磁盘的命令是,linux磁盘相关的命令 2019-04-21
linux 停用用户,linux – 如何禁用用户的网络访问? 2019-04-21
linux服务器 缓存,Linux服务器内存使用分析及内存缓存 2019-04-21
linux查进程内存问题,关于linux 查看服务进程内存,cpu,内存占用的一些基础命令... 2019-04-21
linux英文包安装教程视频,Linux源码包安装过程讲解 2019-04-21
linux 关闭rsync服务器,linux下配置rsync服务器和实时同步 2019-04-21