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语句动态的组装能力,而且他只有 ...
随机推荐
- Inside JVM 内存模型
Inside JVM 内存模型 来源 原文:https://blog.csdn.net/silentbalanceyh/article/details/4661230 参考:IBM开发中心文档,&l ...
- 向git添加和提交文件
状态 git status 可以知道有哪些文件被修改,哪些文件待提交 当前无待提交文件 分区 三个分区:工作区,缓存区,版本库 三个分区之间的联系: 工作区 >> git add > ...
- android 让真机显示 DeBug Log调试信息
真机默认是不开启Log 开关的,这么来说我们如果使用真机来搞程序测试的话,需要做以下几个步骤: 下面以华为手机为例开启手机的log功能: 1.在拨号界面输入:*#*#2846579#*#* 进入测 ...
- 牛客练习赛 小A与最大子段和 解题报告
小A与最大子段和 题意 在一个序列 \(\{a\}\) 里找到一个非空子段 \(\{b\}\), 满足 \(\sum\limits_{i=1}^{|b|}b_i\times i\) 最大 \(n\le ...
- 洛谷 P2463 [SDOI2008]Sandy的卡片 解题报告
P2463 [SDOI2008]Sandy的卡片 题意 给\(n(\le 1000)\)串,定义两个串相等为"长度相同,且一个串每个数加某个数与另一个串完全相同",求所有串的最长公 ...
- scrapy-redis爬取豆瓣电影短评,使用词云wordcloud展示
1.数据是使用scrapy-redis爬取的,存放在redis里面,爬取的是最近大热电影<海王> 2.使用了jieba中文分词解析库 3.使用了停用词stopwords,过滤掉一些无意义的 ...
- Java -- JDBC 学习--通过Statement进行数据库更新操作
通过 JDBC 向指定的数据表中插入一条记录. 1. Statement: 用于执行 SQL 语句的对象 1). 通过 Connection 的 createStatement() 方法来获取 2). ...
- Codeforces 382 D Permutations
题目大意: 给出一张二分图,这张二分图完美匹配的个数是奇数,求删掉第$i(1<=i<=m)$条边后完美匹配个数的奇偶性. 设这张图的邻接矩阵为$A$,那么完美匹配的个数为$A$的积和式,即 ...
- C# String类&Math类&DateTime类
String类: String a = "abcdefghijklmnopqrstuvwxyz"; int length = a.length; //获取字符串的长度: a = ...
- IDEA集成有道翻译插件/maven帮助插件/mybatis插件
(一)IDEA集成有道翻译插件:https://www.cnblogs.com/a8457013/p/7814335.html 插件下载地址:http://plugins.jetbrains.com/ ...