zoukankan      html  css  js  c++  java
  • MyBatis #{} 和 ${} 引用值的用法

    1.#{} 引用值的用法

    UserMapper配置文件:

        <select id="queryOne" resultType="cn.tedu.mybatis.beans.User">
            select * from user where id = #{id}
        </select>

    测试:

        // 根据配置文件创建sqlSessionFactory
        private SqlSessionFactory factory = null;
        @Before
        public void before() throws Exception{
            //1.读取MyBatis核心配置文件
            InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
            //2.根据配置文件创建sqlSessionFactory
            factory = new SqlSessionFactoryBuilder().build(in);
        }

      /** * #{} 用法 */ @Test public void test05(){ User user = new User(); user.setName("cjj"); user.setAge(24); // 1.创建sqlSession SqlSession session = factory.openSession(); // 2.执行操作 session.insert("cn.tedu.mybatis.beans.UserMapper.insertUser",user); // 3.提交事务,mybatis自动开启事务,但是并不会自动提交,需要手动提交事物 session.commit(); }

    2.${} 引用值的用法

    在UserMapper.xml中配置:

    在此处通过${xxx}的语法用来引用属性

        <!-- ${} 的用法 -->
        <select id="queryAllOrder" resultType="cn.tedu.mybatis.beans.User">
            select * from user order by ${cname}
        </select>

    测试类:

        // 根据配置文件创建sqlSessionFactory
        private SqlSessionFactory factory = null;
        @Before
        public void before() throws Exception{
            //1.读取MyBatis核心配置文件
            InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
            //2.根据配置文件创建sqlSessionFactory
            factory = new SqlSessionFactoryBuilder().build(in);
        }
        
        /**
         * ${} 的用法
         */
        @Test
        public void test06(){
            // 1.通过map,准备参数
            Map<String,String> map = new HashMap<String,String>();
            map.put("cname", "age");
            // 2.创建sqlSession
            SqlSession session = factory.openSession();
            // 3.执行操作
            List<User> list = session.selectList("cn.tedu.mybatis.beans.UserMapper.queryAllOrder",map);
            // 4.遍历结果
            System.out.println(Arrays.toString(list.toArray()));
        }

    3. #{} 和 ${} 区别

    #{} 在引用时,如果发现目标是一个字符串,则会将其值作为一个字符串拼接在sql上

    ${} 在引用时,即使发现目标是一个字符串,也不会作为字符串而是直接使用将其拼接到sql上

    所以,通常情况下,使用#{}

    而如果需要引用的是一个列名,使用${}

     

  • 相关阅读:
    python 装饰器
    python 环境迁移之requirements.txt (window环境)
    selenium 元素查找与属性
    pytest+allure(allure-pytest基于这个插件)设计定制化报告
    Capability配置
    python_excel
    python_连接mysql
    MySql_1
    appium_环境搭建
    appium_appium简介
  • 原文地址:https://www.cnblogs.com/chuijingjing/p/9857468.html
Copyright © 2011-2022 走看看