1.输入映射

输入映射支持的类型:

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

1.1基本类型

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

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

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

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

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

1.2JavaBean 类型

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

public void testParameterType(Customer c);

     /**
* 输入映射-Javabean
*/
@Test
public void test1() {
SqlSession sqlSession = SessionUtils.getSession();
// getMapper(): 返回指定接口的动态代理的实现类对象
CustomerDao dao = sqlSession.getMapper(CustomerDao.class);
Customer c = new Customer();
c.setName("张三666");
c.setGender("男");
c.setTelephone("123456789");
dao.testParameterType(c);
sqlSession.commit();
sqlSession.close();
}

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

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

CustomerVo.java:

 package cn.sm1234.domain;

 /**
* CustomerVo包装JaveBean类型
* @author Jack
*
*/
public class CustomerVo { private Customer customer; public Customer getCustomer() {
return customer;
} public void setCustomer(Customer customer) {
this.customer = customer;
}
}
     <insert id="testParameterType" parameterType="CustomerVo">
<!--
customer.name传值说明:
customer来源于CustomerVo.java中的private Customer customer;定义
-->
INSERT INTO t_customer(NAME,gender,telephone) VALUES(#{customer.name},#{customer.gender},#{customer.telephone})
</insert>

public void testParameterType(CustomerVo c);

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

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

     <!-- 定义别名 -->
<typeAliases>
<!-- type: 需要映射的类型 alias: 别名 -->
<!-- <typeAlias type="cn.sm1234.domain.Customer" alias="customer"/> -->
<!-- ibatis3.0推荐使用的标签,定位到包名即可 -->
<package name="cn.sm1234.domain" />
</typeAliases>

Mybatis进阶学习笔记——输入映射的更多相关文章

  1. Mybatis进阶学习笔记——输出映射

    输出映射(例如一个方法的返回至使用什么类型去接收) 1.基本类型 <!-- 统计记录数 --> <select id="queryTotalCount" resu ...

  2. Mybatis进阶学习笔记——动态代理方式开发Dao接口、Dao层(推荐第二种)

    1.原始方法开发Dao Dao接口 package cn.sm1234.dao; import java.util.List; import cn.sm1234.domain.Customer; pu ...

  3. Mybatis进阶学习笔记——关系查询——一对多查询

    一个客户拥有多个订单 <resultMap type="User" id="UserOrderResultMap"> <id column=& ...

  4. Mybatis进阶学习笔记——关系查询——一对一查询

    用户和订单的需求 通过查询订单,查询用户,就是一对一查询 (1)自定义JavaBean(常用,推荐使用) <select id="queryOrderUser" result ...

  5. Mybatis进阶学习笔记——动态sql

    1.if标签 <select id="queryByNameAndTelephone" parameterType="Customer" resultTy ...

  6. ROS进阶学习笔记(11)- Turtlebot Navigation and SLAM - ROSMapModify - ROS地图修改

    ROS进阶学习笔记(11)- Turtlebot Navigation and SLAM - 2 - MapModify地图修改 We can use gmapping model to genera ...

  7. 爱了!阿里大神最佳总结“Flutter进阶学习笔记”,理论与实战

    前言 "小步快跑.快速迭代"的开发大环境下,"一套代码.多端运行"是很多开发团队的梦想,美团也一样.他们做了很多跨平台开发框架的尝试:React Native. ...

  8. mybatis的学习笔记

    前几天学习了mybatis,今天来复习一下它的内容. mybatis是一个基于Java的持久层框架,那就涉及到数据库的操作.首先来提出第一个问题:java有jdbc连接数据库,我们为什么还要使用框架呢 ...

  9. MyBatis:学习笔记(4)——动态SQL

    MyBatis:学习笔记(4)——动态SQL 如果使用JDBC或者其他框架,很多时候需要你根据需求手动拼装SQL语句,这是一件非常麻烦的事情.MyBatis提供了对SQL语句动态的组装能力,而且他只有 ...

随机推荐

  1. POJ3273-Monthly Expense-二分答案

    FJ对以后的每一天会花mi块钱,他想把这些天分成M个时段,然后每个时段的花费和最小. 二分答案,如果加上这天还没有达到mid,就加上它.之后看分成的时段是否大于M #include <cstdi ...

  2. pipreqs 组件

    作用 帮助你查询所有需要用的组件 安装 pip install pipreqs   使用 """ 切换到项目的路径下 执行查询当前文件下所需要的所有的组件 会生成一个 r ...

  3. 自学工业控制网络之路1.2-典型的现场总线介绍PROFIBUS

    返回 自学工业控制网络之路 自学工业控制网络之路1.2-典型的现场总线介绍PROFIBUS 目前看来,现场总线标准不会统一,多标准并存现象将会持续. 现场总线国家标准: 中国的DeviceNet和AS ...

  4. HTML 百度地图API调用示例源码

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  5. [NOIP提高组2018day2t1]旅行

    题目描述 给定n个城市,m条双向道路的图, 不存在两条连接同一对城市的道路,也不存在一条连接一个城市和它本身的道路.并且, 从任意一个城市出发,通过这些道路都可以到达任意一个其他城市.小 Y 只能通过 ...

  6. SharePoint 2013 Central Admin 不能打开

    当我准备打开CA时发现下面的错误: This operation can be performed only on a computer that is joined to a server farm ...

  7. STM32外设地址查询

    问题的提出 DMA传输SDIO驱动的SD卡的数据,其中外设地址的确定 问题的解决 打开数据参考手册,在存储器和总线架构一章存储器映像小节,有一个寄存器组起始地址表,列举所有外设对应的起始地址,再到相应 ...

  8. 【洛谷P3600】 随机数生成器

    https://www.luogu.org/problem/show?pid=3600#sub (题目链接) 题意 一个$n$个数的序列,里面每个数值域为$[1,X]$.给$q$个区间,每个区间的权值 ...

  9. (转) JVM——Java类加载机制总结

    背景:对java类的加载机制,一直都是模糊的理解,这篇文章看下来清晰易懂. 转载:http://blog.csdn.net/seu_calvin/article/details/52301541 1. ...

  10. ActiveMQ集群简单测试+eclipse Zookeeper 插件 + 负载均衡

    ActiveMQ集群搭建好之后,接下来就该测试一下了. 一.先安装Zookeeper 的eclipse插件吧. 1. 打开 eclipse, Help -> Install New Softwa ...