当前位置: 首页 > news >正文

东莞市镇街建设项目监理招标网站千锋教育学费

东莞市镇街建设项目监理招标网站,千锋教育学费,做网站的eclip,vmware做网站步骤目录配置自动下划线驼峰MyBatis解析的SQL和实际传参不符的问题传参是整型,结果是false日期比较入参是字符串入参是Date父子递归查询上下级查询方法一方法二传参数组inmapper中接口注解映射配置 自动下划线驼峰 使用mybatis的自动下划线驼峰转换 mybatis有一个选项…

目录

  • 配置
    • 自动下划线驼峰
  • MyBatis解析的SQL和实际传参不符的问题
    • 传参是整型,结果是false
  • 日期比较
    • 入参是字符串
    • 入参是Date
  • 父子递归查询
  • 上下级查询
    • 方法一
    • 方法二
  • 传参数组
    • in
  • mapper中接口注解映射

配置

自动下划线驼峰

使用mybatis的自动下划线驼峰转换
mybatis有一个选项叫mapUnderscoreToCamelCase,当表中的字段名与对象的属性名相同只是下划线和驼峰写法的差异时适用。

配置了mapUnderscoreToCamelCase之后mybatis在将ResultSet查出的数据设置到对象的时候会尝试先将下划线转换为驼峰然后前面拼接set去设置属性。
在这里插入图片描述
然后查询:

/**

  • 根据ID查询,开了自动驼峰转换
  • @param id
  • @return
    */
    @Select(“SELECT * FROM t_user WHERE id=#{id}”)
    User loadByIdAutoAlias(Long id);

查看打印的结果,birth_day属性填充到了对象中:
在这里插入图片描述

MyBatis解析的SQL和实际传参不符的问题

传参是整型,结果是false

传参is_finished =1 但是查询确实false

==>  Preparing: select RES.* from item RES  where RES.project_id = ? and RES.is_finished = ? and RES.is_qualified = ? order by RES.plan_end_time DESC limit ?, ?
==> Parameters: 1586971605296447490(String), 1(Integer), false(Boolean), 0(Integer), 10(Integer)

参考:记一次MyBatis解析的SQL和实际传参不符的问题

原因是后面排序判断的时候少了一个等号
错误写法

<choose><when test="isFinished = null or isFinished == 0">order by RES.plan_start_time asc</when><otherwise>order by RES.plan_end_time DESC</otherwise></choose>

会导致这个地方计算的结果 isFinished =false
在这里插入图片描述
正确写法应该是:isFinished == null

<choose><when test="isFinished == null or isFinished == 0">order by RES.plan_start_time asc</when><otherwise>order by RES.plan_end_time DESC</otherwise></choose>

日期比较

原文链接:https://blog.csdn.net/afkbcgz/article/details/88057869

入参是字符串


@Param("startTime") String startTime, @Param("endTime") String endTime);

xml映射


SELECTCOUNT(*)FROM target_reward_settle_accounts_dailyWHERE<![CDATA[create_time >= str_to_date( #{startTime},'%Y-%m-%d %H:%i:%s')AND create_time < str_to_date( #{endTime},'%Y-%m-%d %H:%i:%s')]]>

入参是Date


@Param("startTime") Date startTime, @Param("endTime") Date endTime);

xml映射


SELECTCOUNT(*)FROM target_reward_settle_accounts_dailyWHERE<![CDATA[create_time >= #{startTime,jdbcType=TIMESTAMP}AND create_time < #{endTime,jdbcType=TIMESTAMP}]]>

父子递归查询

原文链接:https://blog.csdn.net/m0_67402564/article/details/123987858

如果表里有一列是设置父级ID,那么我们可以根据这个父级ID进行递归,最后成为返回父子集合的list。下面是贴上mapper的代码,我们最后只需要调用getAllMenu,就可以返回List<Menu><resultMap type="com.example.demo.entity.Menu" id="menuTree"><id column="menuId" property="menuId"/><result column="menuName" property="menuName"/><result column="menuAddr" property="menuAddr"/><result column="menuSts" property="menuSts"/><result column="menuSort" property="menuSort"/><result column="menuImg" property="menuImg"/><collection property="children" ofType="com.example.demo.entity.Menu" column="menuId" select="getMenuChildren"/>
</resultMap>
<!-- 先查询菜单根级目录 -->
<!-- 这里的返回结果必须为resultMap,并且值为上面构建的resultMap的id的值 -->
<select id="getAllMenu" resultMap="menuTree">SELECT m1.menuId,m1.menuName,m1.menuAddr,m1.menuSts,m1.menuSort,m1.menuImgFROMmenu m1WHERE m1.supMenuId=0
</select><!-- 再利用上次查询结果colliection中column的值cid做递归查询,查出所有子菜单 -->
<!-- 这里的返回结果必须为resultMap,并且值为上面构建的resultMap的id的值 -->
<select id="getMenuChildren" resultMap="menuTree">SELECT m2.menuId,m2.menuName,m2.menuAddr,m2.menuSts,m2.menuSort,m2.menuImgFROM menu m2WHERE m2.supMenuId=#{menuId}
</select>

上下级查询

方法一

参考:https://blog.csdn.net/qq853632587/article/details/118901263

<resultMap id="OrderResultMap" type="com.gxu.construction.business.order.dto.ImproveOrderDTO"><id column="id" jdbcType="VARCHAR" property="id"/><result column="level" jdbcType="INTEGER" property="level"/><result column="title" jdbcType="VARCHAR" property="title"/><result column="improver_name" jdbcType="VARCHAR" property="improverName"/><result column="require_improve_time" jdbcType="TIMESTAMP" property="requireImproveTime"/><result column="actual_improve_time" jdbcType="TIMESTAMP" property="actualImproveTime"/><result column="remark" jdbcType="VARCHAR" property="reviewRemark"/><collection property="files" ofType="com.gxu.construction.file.dto.FileDTO" column="id" select="queryOrderFilesList"/></resultMap><!-- 批量获取整改工单信息 --><select id="selectListByIds" resultMap="OrderResultMap" >select id,title,level,improver_name,require_improve_time,actual_improve_time,remarkfrom improve_order RES where id in<foreach collection="orderIds" index="index" item="id" open="(" separator="," close=")">#{id}</foreach></select><!--级联查询订单项信息--><select id="queryOrderFilesList" resultType="com.gxu.construction.file.dto.FileDTO" parameterType="java.lang.String">select id,file_id as fileId,file_key as fileKey from  file_record where business_key = #{id}</select>

方法二

原文链接:https://blog.csdn.net/tian_yu_2012/article/details/123271498

public class EntityA {private Integer a;private Integer ad;
}public class EntityB{private Integer b;private Integer aId;
}public class EntityAVo {private Integer a;private Integer ad;private List<EntityB> alist;
}
<resultMap id="aMap" type="EntityAVo"><result property="a" column="a"/><result property="ad" column="ad"/><collection property="alist" ofType="EntityB"><result column="b" property="b"/><result column="a_id" property="aId"/></collection>
</resultMap><select id="test" resultMap="aMap">SELECT A.a,A.ad,B.b,B.a_idFROMALEFT JOIN B ON B.a_id = A.a
</select>

传参数组

in

参考:https://blog.csdn.net/menghuanzhiming/article/details/79206068

int deleteByFormIds(@Param("list") List<Integer> ids);
select * from t where id in <foreach item="id" index="index" collection="ids" open="(" separator="," close=")">  #{id, jdbcType=INTEGER}  </foreach>

mapper中接口注解映射

https://www.bbsmax.com/A/nAJv76385r/

/*** 插入记录,手动分配主键** @param user* @return*/@Insert("INSERT INTO t_user (id, username, passwd) VALUES (#{id}, #{username}, #{passwd})")int addUserAssignKey(User user);/*** 插入记录,数据库生成主键** @param user* @return*/@Options(useGeneratedKeys = true, keyProperty = "id")@Insert("INSERT INTO t_user (username, passwd) VALUES (#{username}, #{passwd})")int addUserGeneratedKey(User user);/*** 插入记录,选择主键** @param user* @return*/@Insert("INSERT INTO t_user (username, passwd) VALUES (#{username}, #{passwd})")@SelectKey(statement = "SELECT UNIX_TIMESTAMP(NOW())", keyColumn = "id", keyProperty = "id", resultType = Long.class, before = true)int addUserSelectKey(User user);/*** 删除记录** @param id* @return*/@Delete("DELETE FROM t_user WHERE id=#{id}")int delete(Long id);/*** 修改记录** @param user* @return*/@Update("UPDATE t_user SET username=#{username}, passwd=#{passwd} WHERE id=#{id}")int update(User user);/***  根据ID查询,开了自动驼峰转换** @param id* @return*/@Select("SELECT * FROM t_user WHERE id=#{id}")User loadByIdAutoAlias(Long id);/*** 使用ResultMap** @param id* @return*/@Results(id = "userMap", value = {@Result(id=true, column = "id", property = "id"),@Result(column = "username", property = "username"),@Result(column = "passwd", property = "passwd"),@Result(column = "birth_day", property = "birthDay")})@Select("SELECT * FROM t_user WHERE id=#{id}")User loadByIdResultMap(Long id);/*** 引用其他的Result** @param id* @return*/@ResultMap("userMap")@Select("SELECT * FROM t_user WHERE id=#{id}")User loadByIdResultMapReference(Long id);
http://www.khdw.cn/news/66878.html

相关文章:

  • 如何快速建站新东方教育培训机构
  • 腾讯企点官网厦门关键词优化企业
  • 在ps中做网站首页的尺寸外贸企业网站推广
  • 手机网站和pc网站链接网
  • 房产手机网站开发常见的网络直接营销有哪些
  • 网络工程师和做网站哪个难网站seo的主要优化内容
  • 众筹网站制作关键词优化 搜索引擎
  • 网站 数据备份樱桃磁力bt天堂
  • 网站表格边框怎么做google图片搜索
  • 网站关键词分析工具全网推广外包公司
  • 做电子商务网站多少钱计算机培训班
  • 网站域名批量查询怎么做宣传推广
  • 响应式网站区别万能搜索引擎入口
  • 绿色做环保网站的好处关键词怎么写
  • 南京网站建设与维护杭州seo运营
  • 内蒙古微网站建设网络推广合作资源平台
  • 东航集团客户网站是哪家公司建设seo推广怎么学
  • 网络服务器地址零基础学seo要多久
  • 东莞网站建设在哪里谷歌浏览器2021最新版
  • 网站开发需求表模板域名检测查询
  • 小白怎么做网站如何推销网站
  • 高端型网站建设百度高级搜索页面的网址
  • 个人网站赚广告费东莞做一个企业网站
  • 广州网站排名怎么优化关键词优化资讯
  • web浏览器是啥重庆seo排
  • 优化公司哪家好最新seo教程
  • 那个网站可以做全景图网站增加外链的方法有哪些
  • 温州做网站建设百度seo排名原理
  • 马鞍山市建设银行网站网络营销策划书的结构
  • 做网站需要编程?搜索优化