Mybatis进阶学习笔记——输出映射
输出映射(例如一个方法的返回至使用什么类型去接收)
1.基本类型
<!-- 统计记录数 -->
<select id="queryTotalCount" resultType="long">
SELECT COUNT(*) FROM t_customer
</select>
public Long queryTotalCount();
/**
* 输出映射
*/
@Test
public void test2() {
SqlSession sqlSession = SessionUtils.getSession();
// getMapper(): 返回指定接口的动态代理的实现类对象
CustomerDao dao = sqlSession.getMapper(CustomerDao.class);
Long count = dao.queryTotalCount();
System.out.println(count);
sqlSession.commit();
sqlSession.close();
}
2.JavaBean类型(*常用类型)
<select id="queryCustomer" parameterType="int" resultType="Customer">
SELECT * FROM t_customer WHERE id=#{value}
</select>
public Customer queryCustomer(Integer id);
/**
* 输出映射
*/
@Test
public void test2() {
SqlSession sqlSession = SessionUtils.getSession();
// getMapper(): 返回指定接口的动态代理的实现类对象
CustomerDao dao = sqlSession.getMapper(CustomerDao.class);
Customer c = dao.queryCustomer(1);
System.out.println(c);
sqlSession.commit();
sqlSession.close();
}
3.ResultMap类型(用于解决表的字段名称和实体类的属性名称不一致的情况)
resultType使用要求:JavaBean中的属性名要和数据库字段名保持一致。
<!-- 定义ResultMap -->
<!--
含义说明:
type:我们需要封装成的实体类
id:定义的名称,供下方代码使用
-->
<resultMap type="CustomerRM" id="customerResultMap">
<!--
id:映射主键
column:数据库字段
property:实体类中的命名
-->
<id column="id" property="custId"/>
<result column="name" property="custName"/>
<result column="gender" property="custGender"/>
<result column="telephone" property="custTelephone"/>
</resultMap>
<select id="queryCustomerResultMap" parameterType="int" resultMap="customerResultMap">
<!-- resultMap:方法的返回值类型,也就是上方定义的type="CustomerRM"中的CustomerRM对象 -->
SELECT * FROM t_customer WHERE id=#{value}
</select>
/**
* 输出映射
*/
@Test
public void test2() {
SqlSession sqlSession = SessionUtils.getSession();
// getMapper(): 返回指定接口的动态代理的实现类对象
CustomerDao dao = sqlSession.getMapper(CustomerDao.class);
CustomerRM c = dao.queryCustomerResultMap(1);
System.out.println(c);
sqlSession.commit();
sqlSession.close();
}
CustomerRM.java:
package cn.sm1234.domain;
public class CustomerRM {
private Integer custId;
private String custName;
private String custGender;
private String custTelephone;
public Integer getCustId() {
return custId;
}
public void setCustId(Integer custIid) {
this.custId = custIid;
}
public String getCustName() {
return custName;
}
public void setCustName(String custName) {
this.custName = custName;
}
public String getCustGender() {
return custGender;
}
public void setCustGender(String custGender) {
this.custGender = custGender;
}
public String getCustTelephone() {
return custTelephone;
}
public void setCustTelephone(String custTelephone) {
this.custTelephone = custTelephone;
}
@Override
public String toString() {
return "CustomerRM [custId=" + custId + ", custName=" + custName + ", custGender=" + custGender
+ ", custTelephone=" + custTelephone + "]";
}
}
数据库字段截图:

Mybatis进阶学习笔记——输出映射的更多相关文章
- Mybatis进阶学习笔记——输入映射
1.输入映射 输入映射支持的类型: 1) 基本的类型,int,String,double 等(*)2) JavaBean 类型(*)3) 包装JavaBean 类型(对象里面包含另一个对象) 1.1基 ...
- 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语句动态的组装能力,而且他只有 ...
随机推荐
- Docker报错总结
[Docker push镜像报错] The push refers to a repository [192.168.200.103:5000/rancher/server]Get https://1 ...
- poj2965 【枚举】
The game “The Pilots Brothers: following the stripy elephant” has a quest where a player needs to op ...
- jsp操作MySQL时报错:Operation not allowed after ResultSet closed
一个stmt对多个rs进行操作引起的ResultSet关闭的错误 解决办法:创建新的stmt,一个rs对应一个stmt
- 集成源码深度剖析:Fescar x Spring Cloud
Fescar 简介 常见的分布式事务方式有基于 2PC 的 XA (e.g. atomikos),从业务层入手的 TCC( e.g. byteTCC).事务消息 ( e.g. RocketMQ Hal ...
- SpringBoot集成RocketMQ
实战,用案例来说话 前面已经说了JMS和RocketMQ一些概念和安装,下面使用SpringBoot来亲身操作一下. 生产者的操作 SpringBoot项目创建完成,引入依赖是第一步: <dep ...
- 01---JMS与消息中间件的基本概念
JMS消息服务介绍和使用场景 什么是JMS JMS : Java Message Service(Java消息服务),Java平台中关于面向消息中间件的接口. 重点在于接口,接口就意味着与JDBC类似 ...
- 【POJ3613】Cow Relays 离散化+倍增+矩阵乘法
题目大意:给定一个 N 个顶点,M 条边的无向图,求从起点到终点恰好经过 K 个点的最短路. 题解:设 \(d[1][i][j]\) 表示恰好经过一条边 i,j 两点的最短路,那么有 \(d[r+m] ...
- SQL 运算符
运算符是一个保留字或字符,主要用于连接WHERE后面的条件. 一.算数运算符 运算符 描述 + 加法 把运算符两边的值相加 - 减法 左操作数减去右操作数 * 乘法 把运算符两边的值相乘 / 除法 左 ...
- (Set) 人见人爱A-B HDU2034
人见人爱A-B 链接:http://acm.hdu.edu.cn/showproblem.php?pid=2034 JAVA代码借鉴链接:https://blog.csdn.net/superbeau ...
- ArrayList创建步骤及基本方法
ArrayList创建变量的步骤 ArrayList ------>集合 1: 导入包 java.util.ArrayList包中 2: 创建引用类型的变量 数据类型< 集合存储的数据类型 ...