Mybatis(三)之输入输出映射

常用的串口通信工具MobaXterm、Bus Hound、SScom等 本文介绍了四种PC端串口通信工具的功能和使用方法:MobaXterm支持SSH、FTP、串口等多种协议;Bus Hound用于监控CAN和串口数据;SScom专为串口和网口通信设计;ScriptCommunicator可进行串口通信并绘制波形图。每种工具都有详细的操作步骤图示,包括参数设置、数据监控等关键功能,并提供了官方和个人下载地址。这些工具各有特点,适用于不同的串口通信和数据分析场景。 阅读详情

参考自《mybatis parametertype 多个参数》
参考自《mybatis学习笔记(7)-输出映射》

输入映射

一、单个参数

方案1

public List<XXBean> getXXBeanList(@param("id")String id);  

<select id="getXXXBeanList" parameterType="java.lang.String" resultType="XXBean">

  select t.* from tableName t where t.id= #{id}  

</select>  

其中方法名和ID一致,#{}中的参数名与方法中的参数名一致, 这里采用的是@Param这个参数,实际上@Param这个最后会被Mabatis封装为map类型的。

select 后的字段列表要和bean中的属性名一致, 如果不一致的可以用 as 来补充。

方案2

//在实际需求中,我们经常需要结合多个条件综合查询,而这些条件并不在同一个POJO类中,
//所以需要对POJO类进行包装,生成另外一个类作为参数类型
public class UserQueryVO {
    // 用户信息
    private User user;
    // 订单信息
    private Order order;
    //...
}

public List<User> getUserList(UserQueryVO vo);

<!--使用包装POJO类作为参数,查询用户列表 -->
<select id="getUserList" parameterType="com.zyj.mybatis.po.UserQueryVO" resultType="com.zyj.mybatis.po.User">
    select * from user where username like '%${user.username}%' and sex = #{user.sex}
</select>

二、多个参数

方案1

public List<XXXBean> getXXXBeanList(String xxId, String xxCode);  

<select id="getXXXBeanList" resultType="XXBean">不需要写parameterType参数

  select t.* from tableName where id = #{0} and name = #{1}  

</select>  

由于是多参数那么就不能使用parameterType, 改用#{index}是第几个就用第几个的索引,索引从0开始

方案2

public List<XXXBean> getXXXBeanList(@Param("id")String id, @Param("code")String code);  

<select id="getXXXBeanList" resultType="XXBean">

  select t.* from tableName where id = #{id} and name = #{code}  

</select>  

由于是多参数那么就不能使用parameterType, 这里用@Param来指定哪一个

三、Map封装多参数:

public List<XXXBean> getXXXBeanList(HashMap map);  

<select id="getXXXBeanList" parameterType="hashmap" resultType="XXBean">

  select 字段... from XXX where id=#{xxId} code = #{xxCode}  

</select>

其中hashmap是mybatis自己配置好的直接使用就行。map中key的名字是那个就在#{}使用那个

四、List封装in:

public List<XXXBean> getXXXBeanList(List<String> list);  

<select id="getXXXBeanList" parameterType="list" resultType="XXBean">
  select 字段... from XXX where id in
  <foreach item="item" index="index" collection="list" open="(" separator="," close=")">  
    #{item}  
  </foreach>  
</select>  

foreach 最后的效果是select 字段... from XXX where id in ('1','2','3','4') 

注意:如果parameterType是List或者Array的话,那么foreach语句中,collection属性值需要固定为list或者array。

五、selectList()只能传递一个参数,但实际所需参数既要包含String类型,又要包含List类型时的处理方法:

将参数放入Map,再取出Map中的List遍历。如下:

List<String> list_3 = new ArrayList<String>();
Map<String, Object> map2 = new HashMap<String, Object>();

list.add("1");
list.add("2");
map.put("list", list);  //网址id
map.put("siteTag", "0");//网址类型

public List<SysWeb> getSysInfo(Map<String, Object> map2) {
    return getSqlSession().selectList("sysweb.getSysInfo", map2);
}

<select id="getSysInfo" parameterType="java.util.Map" resultType="SysWeb">
    select t.sysSiteId, t.siteName, t1.mzNum as siteTagNum, t1.mzName as siteTag, t.url, t.iconPath
    from TD_WEB_SYSSITE t
    left join TD_MZ_MZDY t1 on t1.mzNum = t.siteTag and t1.mzType = 10
    WHERE t.siteTag = #{siteTag } 
    and t.sysSiteId not in 
    <foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
        #{item}
    </foreach>
</select>

输出映射基础之单表查询

输出映射有两种方式

 1. resultType
 2. resultMap

resultType

1.使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。
2.如果查询出来的列名和pojo中的属性名全部不一致,没有创建pojo对象。
3.只要查询出来的列名和pojo中的属性有一个一致,就会创建pojo对象。

输出简单类型

mapper.xml

<!-- 用户信息综合查询总数
    parameterType:指定输入类型和findUserList一样
    resultType:输出结果类型
-->
<select id="findUserCount" parameterType="com.iot.mybatis.po.UserQueryVo" resultType="int">
    SELECT count(*) FROM user WHERE user.sex=#{userCustom.sex} AND user.username LIKE '%${userCustom.username}%'
</select>

mapper.java

//用户信息综合查询总数
@Test
public void testFindUserCount() throws Exception {
    //......
    //创建UserMapper对象,mybatis自动生成mapper代理对象
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

    //创建包装对象,设置查询条件
    UserQueryVo userQueryVo = new UserQueryVo();
    UserCustom userCustom = new UserCustom();
    userCustom.setSex("1");
    userCustom.setUsername("小");
    userQueryVo.setUserCustom(userCustom);

    //调用userMapper的方法
    int count = userMapper.findUserCount(userQueryVo);
    //......
}

小结
查询出来的结果集只有一行且一列,可以使用简单类型进行输出映射。

输出pojo对象和pojo列表

不管是输出的pojo单个对象还是一个列表(list中包括pojo),在mapper.xml中resultType指定的类型是一样的。

在mapper.java指定的方法返回值类型不一样:

输出单个pojo对象,方法返回值是单个对象类型

//根据id查询用户信息
public User findUserById(int id) throws Exception;

输出pojo对象list,方法返回值是List

//根据用户名列查询用户列表
public List<User> findUserByName(String name) throws Exception;

生成的动态代理对象中是根据mapper方法的返回值类型确定是调用selectOne(返回单个对象调用)还是selectList (返回集合对象调用 ).

resultMap

mybatis中使用resultMap完成高级输出结果映射。(一对多,多对多)

resultMap使用方法
如果查询出来的列名和pojo的属性名不一致,则需要通过定义一个resultMap对列名和pojo属性名之间作一个映射关系。

1.定义resultMap

2.使用resultMap作为statement的输出映射类型

定义reusltMap

<!-- 定义resultMap
将SELECT id id_,username username_ FROM USER 和User类中的属性作一个映射关系

type:resultMap最终映射的java对象类型,可以使用别名
id:对resultMap的唯一标识
-->
<resultMap type="user" id="userResultMap">
   <!-- id表示查询结果集中唯一标识 
   column:查询出来的列名
   property:type指定的pojo类型中的属性名
   最终resultMap对column和property作一个映射关系 (对应关系)
   -->
   <id column="id_" property="id"/>
   <!-- 
   result:对普通名映射定义
   column:查询出来的列名
   property:type指定的pojo类型中的属性名
   最终resultMap对column和property作一个映射关系 (对应关系)
    -->
   <result column="username_" property="username"/>

</resultMap>

使用resultMap作为statement的输出映射类型

<!-- 使用resultMap进行输出映射
    resultMap:指定定义的resultMap的id,如果这个resultMap在其它的mapper文件,前边需要加namespace
-->
<select id="findUserByIdResultMap" parameterType="int" resultMap="userResultMap">
    SELECT id id_,username username_ FROM USER WHERE id=#{value}
</select>

mapper.java

//根据id查询用户信息,使用resultMap输出
public User findUserByIdResultMap(int id) throws Exception;

测试代码

@Test
public void testFindUserByIdResultMap() throws Exception {
    //......
    //创建UserMapper对象,mybatis自动生成mapper代理对象
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

    //调用userMapper的方法
    User user = userMapper.findUserByIdResultMap(1);
    //.......
}

小结
使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。
如果查询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间作一个映射关系。


输出映射进阶之关联查询

场景:一个订单对应一个用户,同时一个订单对应多个订单明细

数据库

这里写图片描述

一对一(订单为主)

需求:查询订单列表,关联查询用户信息
sql语句:

SELECT orders.*, user.`username`, user.`sex` FROM orders, USER WHERE orders.`user_id` = user.`id`

方式一:resultType

由于订单pojo类orders中没有含有用户表user字段,所以这里可以包装订单类orders

public class OrdersExt extends Orders {
    private String username;
    private String sex;
    //省略getter和setter方法
}
// mapper接口
public interface OrdersMapper {
    public List<OrdersExt> findOrdersAndUserByRstType();
}

// mapper映射文件
<mapper namespace="com.zyj.mybatis.mapper.OrdersMapper">
    <select id="findOrdersAndUserByRstType" resultType="com.zyj.mybatis.dto.OrdersExt">

        SELECT orders.*, user.`username`, user.`sex` FROM orders, USER WHERE orders.`user_id` = user.`id`

    </select>
</mapper>

// 测试代码
@Test
public void testFindOrdersAndUserByRstType() {
    //......
    List<OrdersExt> list = ordersMapper.findOrdersAndUserByRstType();
    //......
}

小结:
1、一对一关联查询时,可以定义专门的扩展po类作为输出结果类型。
2、该扩展po类中定义了sql查询结果集所有的字段对应的属性。
3、此方法较为简单,企业中使用普遍。

方式二:resultMap

与方式一类似,扩展pojo类,与用户类User产生关联关系,并修改mapper映射文件

public class OrdersExt extends Orders {
    private User user;
    //省略getter和setter方法
}
// mapper接口
public interface OrdersMapper {
    public List<OrdersExt> findOrdersAndUserByRstMap();
}

// mapper映射文件
<resultMap type="com.zyj.mybatis.dto.OrdersExt" id="OrdersAndUserRstMap">
    <!-- 订单信息 -->
    <id column="id" property="id"/>
    <result column="user_id" property="userId"/>
    <result column="number" property="number"/>
    <result column="createtime" property="createtime"/>
    <result column="note" property="note"/>

    <!-- 用户信息(一对一) -->
    <!-- association:一对一关联映射 -->
    <!-- property:关联信息查询的结果将要映射的扩展类中的对象属性名称 -->
    <!-- id标签:建议在关联查询时必须写上,不写不会报错,但是会影响性能 -->
    <association property="user" javaType="com.zyj.mybatis.po.User">
        <id column="user_id" property="id"/>
        <result column="username" property="username"/>
        <result column="sex" property="sex"/>
    </association>

</resultMap>

<select id="findOrdersAndUserByRstMap" resultMap="OrdersAndUserRstMap">
    SELECT 
      orders.*,
      user.`username`,
      user.`sex` 
    FROM
      orders,
      USER 
    WHERE orders.`user_id` = user.`id` 
</select>

// 测试代码
@Test
public void testFindOrdersAndUserByRstType() {
    //......
    List<OrdersExt> list = mapper.findOrdersAndUserByRstMap();
    //......
}

小结:
使用resultMap进行结果映射时,具体是使用association完成关联查询的映射,将关联查询信息映射到pojo对象中。

一对多(订单为主)

需求:查询订单列表,关联查询用户信息,而且同时附带相应的订单明细

sql语句:

SELECT 
  orders.id,
  orders.`number`,
  orders.`createtime`,
  user.`username`,
  user.`sex`,
  orderdetail.`id` detailId,
  orderdetail.`items_num` 
FROM
  orders,
  USER,
  orderdetail 
WHERE orders.`user_id` = user.`id` 
  AND orders.`id` = orderdetail.`orders_id` 

resultMap

public class OrdersExt extends Orders {
    private User user;
    private List<Orderdetail> details;
    //省略getter和setter方法
}
// mapper接口
public interface OrdersMapper {
    public List<OrdersExt> findOrdersAndDetailByRstMap();
}

// mapper映射文件
<!-- 这里extends继承了上面一对一的resultMap,对OdersExt关联的用户类User进行结果映射 -->
<!-- extends:可以继承一个已有的resultMap,指定resultMap的唯一标示即可 -->
<!-- 注意:继承时,只能继承type类型是一样的resultMap -->
<resultMap type="com.zyj.mybatis.dto.OrdersExt" id="OrdersAndDetailRstMap" extends="OrdersAndUserRstMap">
    <!-- 订单明细信息(一对多) -->
    <!-- collection:映射一对多关系 -->
    <collection property="details" ofType="com.zyj.mybatis.po.Orderdetail">
        <id column="detailId" property="id"/>
        <result column="items_num" property="itemsNum"/>
    </collection>
</resultMap>

<select id="findOrdersAndDetailByRstMap" resultMap="OrdersAndDetailRstMap">
    SELECT 
      orders.id,
      orders.`number`,
      orders.`createtime`,
      user.`username`,
      user.`sex`,
      orderdetail.`id` detailId,
      orderdetail.`items_num` 
    FROM
      orders,
      USER,
      orderdetail 
    WHERE orders.`user_id` = user.`id` 
      AND orders.`id` = orderdetail.`orders_id` 
</select>

// 测试代码
@Test
public void testFindOrdersAndUserByRstType() {
    //......
    List<OrdersExt> list = mapper.findOrdersAndDetailByRstMap();
    //......
}

多对多(用户为主)

需求:查询用户信息,关联查询该用户购买的商品信息
关系:一个用户对多个订单,一个订单对多个明细,一个明细对一个商品信息

sql语句:

SELECT 
  orders.id orders_id,
  orders.`number`,
  orders.`createtime`,
  user.`id` user_id,
  user.`username`,
  user.`sex`,
  orderdetail.`id` detail_id,
  orderdetail.`items_num`,
  items.`id` items_id,
  items.`name`,
  items.`price`
FROM
  orders,
  USER,
  orderdetail,
  items
WHERE orders.`user_id` = user.`id` 
AND orders.`id` = orderdetail.`orders_id`
AND orderdetail.`items_id` = items.`id`

修改pojo类

public class User {
    //一个用户对多个订单
    private List<Orders> orders;
    //...
}
public class Orders {
    // 一个订单对多个明细
    private List<Orderdetail> detail;
    //...
}
public class Orderdetail { 
    //一条明细对一条商品信息
    private Items items;
} 

mapper接口

public interface UserMapper {
    public List<User> findUserAndDetailByRstMap();
}

mapper映射文件

<!-- 多对多 -->
<resultMap type="com.zyj.mybatis.po.User" id="UserAndDetailRstMap">
    <!-- 用户信息  -->
    <id column="user_id" property="id"/>
    <result column="username" property="username"/>
    <result column="sex" property="sex"/>
    <!-- 一个用户对多个订单 -->  
    <collection property="orders" ofType="com.zyj.mybatis.po.Orders">
        <!-- 订单信息  -->
        <id column="orders_id" property="id"/>
        <result column="number" property="number"/>
        <result column="createtime" property="createtime"/>
        <!-- 一个订单对多个明细 -->
        <collection property="detail" ofType="com.zyj.mybatis.po.Orderdetail">
            <!-- 明细信息  -->
            <id column="detail_id" property="id"/>
            <result column="items_num" property="itemsNum"/>
            <!-- 一条明细对一条商品信息 -->
            <association property="items" javaType="com.zyj.mybatis.po.Items">
                <!-- 商品信息  -->
                <id column="items_id" property="id"/>
                <result column="name" property="name"/>
                <result column="price" property="price"/>
            </association>
        </collection>
    </collection>
</resultMap>

<select id="findUserAndDetailByRstMap" resultMap="UserAndDetailRstMap">
    SELECT 
      orders.id orders_id,
      orders.`number`,
      orders.`createtime`,
      user.`id` user_id,
      user.`username`,
      user.`sex`,
      orderdetail.`id` detail_id,
      orderdetail.`items_num`,
      items.`id` items_id,
      items.`name`,
      items.`price`
    FROM
      orders,
      USER,
      orderdetail,
      items
    WHERE orders.`user_id` = user.`id` 
    AND orders.`id` = orderdetail.`orders_id`
    AND orderdetail.`items_id` = items.`id`
</select>

测试代码

@Test
public void testFindUserAndDetailByRstMap() {
    //......
    List<User> list = mapper.findUserAndDetailByRstMap();
    //......
}

小结:
虽然resultMap和resultType都可以进行结果映射,但是使用resultType更加便捷,企业中建议使用resultType完成结果映射。
resultMap只有特殊场景才会用,比如延迟加载。

基于 MATLAB 的综合能源系统建模案例  电平衡约束:P_{gt}(t)+P_{grid}(t)-P_{eb}(t)-P_{load}(t)=0,其中 P_{grid}(t) 为与外部电网的交互功率(正表示购电,负表示售电)。- 电锅炉的热输出功率 Q_{eb} 与输入电功率 P_{eb} 的关系为:Q_{eb}=\eta_{eb}\times P_{eb},其中 \eta_{eb} 为电锅炉的热效率。- 燃气轮机的余热回收功率 Q_{gt} 与发电功率也存在一定关系,例如:Q_{gt}=c\times P_{gt},c 为余热回收比例系数。 阅读详情

相关推荐

STM32CubeMX实战:TIM定时器中断配置避坑指南(附100ms精准定时代码)

本文深入解析STM32CubeMX配置TIM定时器中断的常见误区与避坑技巧,重点阐述时钟源、预分频器与自动重装载值的精准计算方法。通过实战案例,提供一份可直接复用的100ms精准定时中断代码模板,并分享调试验证方法,帮助开发者构建稳定可靠的嵌入式系统心跳。

grafana8visual的博客 500

概念POJO、DTO、DAO、PO、BO、VO、QO、ENTITY详解

在java开发过程中,新手总是被DAO、PO、BO、VO等等概念弄得晕头转向。 下面我查找了很多资料,总结如下: POJO(Plain Ordinary Java Object 简单Java对象) 实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。 POJO的内在含义是指:那些没有继承任何类、也没有实现任何接口,更没有被其它框架侵入的java对象。它包括PO、DTO、VO、BO等。 POJO持久化-》PO POJO传递-》 DTO POJO在表示层-》VO PO(persistence o

晓风残月淡的博客 4万+

matlab安装libsvm常见问题

matlab安装libsvm常见问题 libsvm的官网链接:LIBSVM -- A Library for Support Vector Machines.

cqujcy的博客 1535

一文总结POJO、DTO、DAO、PO、BO、VO、QO、ENTITY概念及详解

一文总结POJO、DTO、DAO、PO、BO、VO、QO、ENTITY概念及详解,在java开发过程中,新手总是被DAO、PO、BO、VO等等概念弄得晕头转向。

A-Itfuture的博客 2935

Halcon与C#联合编程(一):使用S7协议实现机器视觉上位机与西门子PLC联动

本项目技术栈:C#基础,多线程,Halcon DirectShow,Halcon形状检测,Halcon QR码识别,西门子S7通讯协议,西门子PLC为核心的下位机及执行元件

虎鲸不是鱼 1万+

simulink中MIL测试简单理解

输入信号设置如下:选中New Test Case1 ---INPUT。5、新建(选择New,Test from Spreadsheet)6、可以新建也可以导入(Use existing test)Source:Output为自己预测结果。3、右键子系统(Create)打开生成表格,可以自己调试。4、创建测试用例表格。保存路径为模型路径。保存路径在模型路径。8、运行测试设h置。

lingdianhuat的博客 1783

接口细分安全领域 DTO 与 DO 与VO(及工具类)

1、DTO与DO关系 VO 对应于页面上需要显示的数据(表单), DO 对应于数据库中存储的数据(数据表), DTO 对应于除二者之外需要进行接口形式传递的数据(传递参数)。 传统方式 1、项目太小,对于一种业务实体,封装成一个DO就够了。 2、并不熟悉DTO、VO,更不知道他们之间的区别。 3、了解DO\DTO\VO之间的区别,但是懒得用。 DTO 又分为out ,in output.dto, ...

ws - 兮的博客空间 2148

最优控制理论 二+、哈密尔顿函数法的补充

本章基于变分法所推出的哈密尔顿函数法,2、讨论了积分方程约束的转化、控制+状态等式约束的一阶必要条件。3、控制分段连续、状态存在内点约束等情况下的角点条件,给出了协态变量和哈密尔顿函数在内点处不连续的表达式。...

MSysの优快云 9393

数据传输对象(DTO)--总结

DTO产生背景 当我们在设计面向对象接口的时候,好的实践是在一个对象中隐藏很多信息,并提供一组细粒度的方法来访问和操作这些信息,这意味着每个方法都应该负责单个、细粒度的、原子化的功能。这种方法从对象内部提供了很好的抽象,并增加了方法重用的可能性,这样做需要写很多的方法。 通常情况下,按照上述实现方式,执行复杂任务时可能会调用很多的方法,这在同一个进程中这些方法的开销是可以接受的。但是跨进程或者跨网络调用时,开销会变得很严重。 当客户端为获取多个数据而向服务器发送多次请求,这会严重影响应用的性能。可以发送一次

weixin_40719943的博客 4559

使用WSL2安装ubuntu系统并配置深度学习环境

wsl2安装ubuntu部署深度学习环境的方法

u013358093的博客 2701

基于反事实的因果推理Causal inference based on counterfactuals--一万六千字文献详细解读(因果关系的推理应用)【全文总结】

基于反事实的因果推理Causal inference based on counterfactuals--一万六千字文献详细解读(因果关系的推理应用)【全文总结】---来自一位即将入学的准研一,也希望这篇文章能够激励自己不断走下去!!

qq_46044325的博客 4442

Mybatis xml文件一对一、一对多的写法

一、association 关键字标签:一对一全部放在一个reultMap里面 <resultMap type="com.residual.union.modular.sale.DTO.SaleSkuRecordItemDTO" id="saleRecordItemResultMap" autoMapping="true"> <id column="skuDetialId" jdbcType="BIGINT" property="skuDetialId" /> <a

weixin_46102888的博客 1147

训练救星!EMA多尺度注意力让YOLOv11轻松攻克自定义数据集不涨点难题

在目标检测模型训练中,自定义数据集不涨点是阻碍算法落地的核心痛点之一。传统训练策略在数据分布特殊、样本量有限的场景下极易陷入收敛停滞,而 EMA(指数移动平均)结合多尺度注意力的方案,在自定义数据集上实现mAP 提升 6.5%,同时让训练曲线从“平缓停滞”转为“持续攀升”,彻底解决创新点在自有数据上的性能瓶颈。本教程将带你从原理到实践,通过 EMA 多尺度注意力为 YOLOv11 注入训练稳定性,让你的自定义数据集模型训练实现质的飞跃。EMA 衰减率:小样本数据集建议将decay。

FJN110的博客 160

MyBatis 学习 (三) 输入输出映射

输入映射和输出映射 1. 输入参数映射 2. 返回值映射 这里将bean称为pojo parameterType(输入类型) 传递简单类型 参考第一天内容。 使用#{}占位符,或者${}进行sql拼接。 传递pojo对象 参考第一天的内容。 Mybatis使用ognl表达式解析对象字段的值,#{}或者${}括号中的值为pojo属性名称。 传递pojo包装对象

Mr_黑_ 的博客 326

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

MyBatis(三)配置文件,输入输出映射,动态SQL

1.在SqlMapConfig.xml文件中加载db.properties如果不写db.properties的话,那么也可以直接给value赋值,但是,这样写的话,后果就是维护起来变得麻烦,如果下次改了密码等信息,还需要在xml中寻找对应的value,代码一多的话,会很容易出错且效率不高。相反,可以直接寻找相应的properties文件。db.properties代码:db.driver=com.m

RonaldoWang Blog 855

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

三、MyBatis 多表映射

● 多表映射概念 ● 对一映射 ● 对多映射 ● 多表映射总结 ○ 多表映射优化 ○ 多表映射总结

走在bug的路上 9828

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Mybatis 输入输出映射和动态SQL

Mybatis 输入输出映射和动态SQL输入映射输入的元素可以是简单类型, pojo 对象,也可以是map如果查询的判断条件很复杂,这时我们一般采用pojo对象来封装需要的判断元素,将封装好的pojo对象,传入输出映射输出的元素可以是简单类型, pojo 对象,也可以是map 输出映射可以采用 resultType 进行映射, 指定返回的对象,但是使用此有几个限制: 使用resultType进行输出

请叫我王老魔 887

Mybatis映射详解

在最近的工作中,碰到一个比较复杂的返回结果,发现简单映射已经解决不了这个问题了,只好去求助百度,学习mybatis复杂映射应该怎么写,将学习笔记结合工作碰到的问题写下本文,供自身查漏补缺,同时已被不时之需。

asxyxxx的博客 1万+

MyBatis中映射文件的使用

MyBatis中映射文件的使用

m0_69044845的博客 9022

Mybatis输入输出映射

1.parameterType输入映射 1.1 简单类型映射 <delete id="removeUser" parameterType="int"> delete from user where id = #{id} </delete> 1.2 对象类型映射 <update id="updateUser" parameterType="com.ithe...

qq_41359684的博客 335

Mybatis——输入映射和输出映射

输入映射指的是将数据库中的数据映射到Java对象上。在MyBatis中,可以使用SQL语句来查询数据库,并将查询结果映射到Java对象上。通过使用MyBatis的注解或XML配置,可以指定数据库字段与Java对象属性之间的映射关系。例如,可以将数据库表的列映射到Java对象的属性,或者将多个表的关联查询结果映射到一个Java对象的属性。单表一般不用resultMap,一般都用resultTyperesultType支持的类型基本数据类型、pojo、hashMap输出是POJO和POJO列表问题。

nine06的博客 1384

mybatis输入输出映射与关联查询

输入与输出映射 输入类型parameterType 简单类型 使用简单类型的时候只能传入一个参数,如果想要传入多个参数的话就需要做一些处理。 简单类型传入多个参数的方法 基于注解 比如根据id和username来查询一个对象,下面的代码是mapper接口里面定义的方法,是用来@Param注解 ...

chengwei9975的博客 263

MyBatis输入输出映射

Mapper.xml映射文件中定义了操作数据库的sql,每个sql是一个statement,映射文件是mybatis的核心。注意:要将mapper映射文件放入主配置文件SqlMapConfig.xml中 1 parameterType 1.1 传递简单类型 1.1.1 mapper文件 &lt;select id="getUserById" parameterType="Inte...

Keeping Ready, Keeping Coding 274

mybatis学习三 多级结果映射

MyBatis的 一对一映射,一对多映射

strong_yu的博客 1548

MyBatis 结果映射详解!

本文重点讲解MyBatis的结果映射,让你理解的明明白白的!

qq_56158663的博客 1801

MyBatis之手动映射

在一些简单的场景下,MyBatis 能够自动完成对象和数据库字段之间的映射,这时就不需要手动映射。在MyBatis的XML文件中,我们可以通过来进行手动映射。这种方式适合需要映射复杂对象的情况,比如下面的用户和地址信息的场景。下面是如何在MyBatis的XML文件中编写手动映射的示例。

cyt涛的博客 1609
上一篇: Mybatis(二)之全局配置文件
下一篇: Mybatis(四)之动态SQL
章 鱼
博客等级 码龄10年 203粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值