• Mybatis进阶学习笔记——输入映射


    1.输入映射

    输入映射支持的类型:

    1) 基本的类型,int,String,double 等(*)
    2) JavaBean 类型(*)
    3) 包装JavaBean 类型(对象里面包含另一个对象)

    1.1基本类型

    1 <insert id="testParameterType" parameterType="String">
    2     INSERT INTO t_customer(NAME) VALUES(#{name})
    3 </insert>

    #{name}也可以自定义,如#{value}。

    注意:使用单一参数时可这样定义,多个参数时不可以,需要与定义的名称一致。

     1 // 输入映射 2 public void testParameterType(String name); 

     1     /**
     2      * 输入映射-基本类型
     3      */
     4     @Test
     5     public void test1() {
     6         SqlSession sqlSession = SessionUtils.getSession();
     7         // getMapper(): 返回指定接口的动态代理的实现类对象
     8         CustomerDao dao = sqlSession.getMapper(CustomerDao.class);
     9         dao.testParameterType("张三");
    10         sqlSession.commit();
    11         sqlSession.close();
    12     }

    1.2JavaBean 类型

    1 <insert id="testParameterType" parameterType="Customer">
    2         INSERT INTO t_customer(NAME,gender,telephone) VALUES(#{name},#{gender},#{telephone})
    3 </insert>

     1 public void testParameterType(Customer c); 

     1     /**
     2      * 输入映射-Javabean
     3      */
     4     @Test
     5     public void test1() {
     6         SqlSession sqlSession = SessionUtils.getSession();
     7         // getMapper(): 返回指定接口的动态代理的实现类对象
     8         CustomerDao dao = sqlSession.getMapper(CustomerDao.class);
     9         Customer c = new Customer();
    10         c.setName("张三666");
    11         c.setGender("男");
    12         c.setTelephone("123456789");
    13         dao.testParameterType(c);
    14         sqlSession.commit();
    15         sqlSession.close();
    16     }

    1.3包装JavaBean 类型(对象里面包含另一个对象)

    一个对象里面包含另一个对象

    CustomerVo.java:

     1 package cn.sm1234.domain;
     2 
     3 /**
     4  * CustomerVo包装JaveBean类型
     5  * @author Jack
     6  *
     7  */
     8 public class CustomerVo {
     9 
    10     private Customer customer;
    11 
    12     public Customer getCustomer() {
    13         return customer;
    14     }
    15 
    16     public void setCustomer(Customer customer) {
    17         this.customer = customer;
    18     }    
    19 }
    1     <insert id="testParameterType" parameterType="CustomerVo">
    2     <!-- 
    3         customer.name传值说明:
    4         customer来源于CustomerVo.java中的private Customer customer;定义
    5      -->
    6         INSERT INTO t_customer(NAME,gender,telephone) VALUES(#{customer.name},#{customer.gender},#{customer.telephone})
    7     </insert>

     1 public void testParameterType(CustomerVo c); 

     1     /**
     2      * 输入映射-包装JavaBean 类型(对象里面包含另一个对象)
     3      */
     4     @Test
     5     public void test1() {
     6         SqlSession sqlSession = SessionUtils.getSession();
     7         // getMapper(): 返回指定接口的动态代理的实现类对象
     8         CustomerDao dao = sqlSession.getMapper(CustomerDao.class);
     9         CustomerVo vo = new CustomerVo();
    10         Customer c = new Customer();
    11         c.setName("张三333");
    12         c.setGender("男");
    13         c.setTelephone("123456789");
    14         vo.setCustomer(c);
    15         dao.testParameterType(vo);
    16         sqlSession.commit();
    17         sqlSession.close();
    18     }

    补充:sqlMapConfig.xml定义别名方式

    1     <!-- 定义别名 -->
    2     <typeAliases>
    3         <!-- type: 需要映射的类型 alias: 别名 -->
    4         <!-- <typeAlias type="cn.sm1234.domain.Customer" alias="customer"/> -->
    5         <!-- ibatis3.0推荐使用的标签,定位到包名即可 -->
    6         <package name="cn.sm1234.domain" />
    7     </typeAliases>
  • 相关阅读:
    QQ下面功能移动效果
    网页中选择功能
    自定义listview
    android的内存优化分析【转,超级推荐】
    animation的xml定义中的android:interpolator属性(转)
    HOME键与Notification配合使用的bug重现【原创】
    (转载)Android下Affinities和Task(开发者指南)
    职场加薪步步高升的五大法则(转)
    强引用,软引用和弱引用。
    更改字体的ttf。
  • 原文地址:https://www.cnblogs.com/116970u/p/10163410.html
Copyright © 2020-2023  润新知