Mybatis进阶学习笔记——输入映射
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进阶学习笔记——输入映射的更多相关文章
- Mybatis进阶学习笔记——输出映射
输出映射(例如一个方法的返回至使用什么类型去接收) 1.基本类型 <!-- 统计记录数 --> <select id="queryTotalCount" resu ...
- Mybatis进阶学习笔记——动态代理方式开发Dao接口、Dao层(推荐第二种)
1.原始方法开发Dao Dao接口 package cn.sm1234.dao; import java.util.List; import cn.sm1234.domain.Customer; pu ...
- Mybatis进阶学习笔记——关系查询——一对多查询
一个客户拥有多个订单 <resultMap type="User" id="UserOrderResultMap"> <id column=& ...
- Mybatis进阶学习笔记——关系查询——一对一查询
用户和订单的需求 通过查询订单,查询用户,就是一对一查询 (1)自定义JavaBean(常用,推荐使用) <select id="queryOrderUser" result ...
- Mybatis进阶学习笔记——动态sql
1.if标签 <select id="queryByNameAndTelephone" parameterType="Customer" resultTy ...
- ROS进阶学习笔记(11)- Turtlebot Navigation and SLAM - ROSMapModify - ROS地图修改
ROS进阶学习笔记(11)- Turtlebot Navigation and SLAM - 2 - MapModify地图修改 We can use gmapping model to genera ...
- 爱了!阿里大神最佳总结“Flutter进阶学习笔记”,理论与实战
前言 "小步快跑.快速迭代"的开发大环境下,"一套代码.多端运行"是很多开发团队的梦想,美团也一样.他们做了很多跨平台开发框架的尝试:React Native. ...
- mybatis的学习笔记
前几天学习了mybatis,今天来复习一下它的内容. mybatis是一个基于Java的持久层框架,那就涉及到数据库的操作.首先来提出第一个问题:java有jdbc连接数据库,我们为什么还要使用框架呢 ...
- MyBatis:学习笔记(4)——动态SQL
MyBatis:学习笔记(4)——动态SQL 如果使用JDBC或者其他框架,很多时候需要你根据需求手动拼装SQL语句,这是一件非常麻烦的事情.MyBatis提供了对SQL语句动态的组装能力,而且他只有 ...
随机推荐
- java面试题整理(3)
1.Spring有哪些优点? 轻量级:Spring在大小和透明性方面绝对属于轻量级的,基础版本的Spring框架大约只有2MB. 控制反转(IOC):Spring使用控制反转技术实现了松耦合.依赖被注 ...
- android 使用广播 接收和拦截 android系统短信
package com.app.sms_broadcastreceiver; import android.app.Activity; import android.content.Broadcast ...
- BZOJ5298 [CQOI2018] 交错序列 | 矩阵乘法和一个trick
题面 求所有长度为\(n\)的.没有相邻的1的01序列中,若0有\(x\)个.1有\(y\)个,\(x^ay^b\)之和(对\(m\)取模). \(n \le 10^7, m \le 10^8, 0 ...
- SharePoint 2013 pre-config
#region 1. add winrm, application server and web server role Add-WindowsFeature winrm-iis-ext, Appli ...
- SQLITE在IIS中使用问题
在WEB中使用这个数据库时,System.Data.SQLite.dll 这个经常会出问题 主要是版本问题,sqlite.DLL的版本要和Framework版本匹配 这是下载地址 http://www ...
- 洛谷 P2158 [SDOI2008]仪仗队 解题报告
P2158 [SDOI2008]仪仗队 题目描述 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线 ...
- 标准C++类std::string的内存共享和Copy-On-Write...
标准C++类std::string的 内存共享和Copy-On-Write技术 陈皓 1. 概念 Scott Meyers在<More Effective C++>中举了个例子,不知你是否 ...
- 【模板】堆优化Dijkstra
Dij的核心思想:全局最小值不会被其他节点更新,因此得到最小值后只需要扩展一次即可. 概念:扩展.出队 注意:vis[ ]数组表示的是每个节点是否扩展过,因此开始时vis[st]不置1. 时间复杂度\ ...
- vcf格式文件转化为Excel(csv)格式文件(R语言的write.csv,write.table功能,Excel表的文件导入功能)
最近在整理文件,准备把vcf文件转化为Excel格式,或者CSV格式,网上搜了一堆资料,还真有人专门开发出转化格式的工具:叫vcf2csv(下载地址http://vcf2csv.sourceforge ...
- 十、java_IO
目录: 一.java流式输入/输出原理 二.java流类的分类 三.输入/输出流类 四.常见的节点流和处理流 五.文件流 六.缓冲流 七.数据流 八.转换流 九.Print流 十.Ubject流 一. ...