1.场景: fyq_share_house 表 和 fyq_sh_tag 表 两张表是一对多的关系, 一个楼盘对应多个标签,在实体类ShareHouse中使用 /** * 楼盘标签 */ private List<String> tags ; 来存放多个tag标签. MyBatis对应的xml配置文件表示为 <collection property="tags" ofType="string"> <constructor> <…
MyBatis要求如果参数为String的话,不管接口方法的形参是什么,在Mapper.xml中引用时需要改变为_parameter才能识别 : <select id="selectByIp" parameterType="string" resultType="voteIP">   select *   form vote   <where>     <if test ="_parameter!= nul…
本文转载自以下网站: 爬虫断了?一招搞定 MongoDB 重复数据 https://www.makcyun.top/web_scraping_withpython13.html 需要学习的地方: MongDB数据库的初步使用 import pymongo client = pymongo.MongoClient('localhost', 27017) # 链接db = client.Douban # 数据库mongo_collection = db.douban # 数据库中的数据表 def w…
mybatis 一对一与一对多collection和association的使用   在mybatis如何进行一对一.一对多的多表查询呢?这里用一个简单的例子说明. 一.一对一 1.association association通常用来映射一对一的关系,例如,有个类user,对应的实体类如下:(getter,setter方法省略) private String id;//主键 private String userName;//用户姓名 有个类Article,对应的实体类如下: private…
今天在用Hibernate通过原生SQL和ResultTransformer映射时,出现数据类型不匹配的错误.但是通过Entity映射,没有问题.在网上找了好多答案,终于解决了. 核心代码: String sql = "select currencies.code, attr1, attrN from currencies, table1,tableN"; SQLQuery sqlQuery = session.createSQLQuery(sql); sqlQuery.setResu…
一.参数list时,先判断是否为空,否则会报错. 二.mybatis ${}与#{}的区别 简单来说#{} 解析的是占位符?可以防止SQL注入, 比如打印出来的语句 select * from table where id=? 然而${} 则是不能防止SQL注入打印出来的语句 select * from table where id=2 实实在在的参数. 最简单的区别就是${}解析穿过来的参数值不带单引号,#{}解析传过来参数带单引号. 最后总结一下必须使用$引用参数的情况,那就是参数的int型…
比如 final   Map  map =new  HashMap();    可以往map里put数据final   List  list =new  ArrayList();   可以往list里add数据但是   final   String    s =“123”:     然后s就不可修改数据了同样是final    为啥map和list可以修改    但是string不可以修改呢 解答: 1.对List或map的add或put操作,没有修改引用.而对字符串的修改,是整个引用都要指向一…
如果类的一个成员函数的返回值是string类型,需要注意一个问题 其返回值可能是错误的 例如函数的实现如下 function GetString( s: string ): string;begin  Result := Result + s;end; 调用方式如下: procedure test();var  i: Integer;  s: string;begin    s := '';    s := GetString( IntToStr( 1 ) );    s := GetStrin…
最近项目中在用Linq Distinct想要将重复的资料去除时,发现它跟Any之类的方法有点不太一样,不能很直觉的在呼叫时直接带入重复数据判断的处理逻辑,所以当我们要用某个成员属性做重复数据的判断时,就必需绕一下路,这边稍微将处理的方法做个整理并记录一下. 首先为了方便接下去说明,我们必须先来准备后面会用到的数据类别,这边一样用笔者最常用来示范的Person类别,内含两个成员属性ID与Name. 01.public struct Person 02.{ 03.#region Property 0…
最近项目中在用Linq Distinct想要将重复的资料去除时,发现它跟Any之类的方法有点不太一样,不能很直觉的在呼叫时直接带入重复数据判断的处理逻辑,所以当我们要用某个成员属性做重复数据的判断时,就必需绕一下路,这边稍微将处理的方法做个整理并记录一下. 首先为了方便接下去说明,我们必须先来准备后面会用到的数据类别,这边一样用笔者最常用来示范的Person类别,内含两个成员属性ID与Name. view source print? 01.public struct Person 02.{ 03…
1.现象描述 (1)使用 Mybatis 在进行数据更新时,大部分时候update语句都需要通过动态SQL进行拼接.在其中,if标签中经常会有 xxx !='' 这种判断,若 number 类型的字段上传递的值为 0, 执行更新时会发现数据库中的数据并没有被更新成 0,这种异常现象不会报错,所以容易被忽视. <update id="update" parameterType="com.hrh.mybatis.bean.Person"> update ta…
1.先说resultMap比较容易混淆的点, 2. Map结尾是映射,Type是类型  resultType 和restltMap restulyType: 1.对应的是java对象中的属性,大小写不敏感, 2.如果放的是java.lang.Map,key是查询语句的列名,value是查询的值,大小写敏感 resultMap:指的是定义好了的id的,是定义好的resyltType的引用 注意:用resultType的时候,要保证结果集的列名与java对象的属性相同,而resultMap则不用,而…
一.前言 MyBatis 创建时的一个思想是:数据库不可能永远是你所想或所需的那个样子. 我们希望每个数据库都具备良好的第三范式或 BCNF 范式,可惜它们并不都是那样. 如果能有一种数据库映射模式,完美适配所有的应用程序,那就太好了,但可惜也没有. 而 ResultMap 就是 MyBatis 对这个问题的答案. 二.ResultMap 的属性列表 属性 描述 id 当前命名空间中的一个唯一标识,用于标识一个结果映射. type 类的完全限定名, 或者一个类型别名(关于内置的类型别名,可以参考…
前言:最近在做一个通用查询单表的组件,所以 sql 的写法就是 select *,然后 resultType="map" .如果数据库中的表里有字段类型为 Long 等类型时,mybatis 在执行 sql 时会报错,如果表中有 Blob.Clob 类型在转 json 是也会报错,而且我这里也需要将这几种类型都转为 String 类型到前端. long 类型 sql 报错: Blob/Clob 转 json 报错: 解决方案: 自定义 typeHandle 来统一处理数据库这些特殊的字…
前言:最近在做一个通用查询单表的组件,所以 sql 的写法就是 select *,然后 resultType="map" ,然后使用 jackson @ResponseBody 返回前端报错. 转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9708485.html 后台报错: 26-Sep-2018 22:18:08.209 WARNING [http-apr-8080-exec-8] org.springframework.web.servle…
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解使用collection标签实现嵌套查询的方法. 1. 需求升级 在上篇博客中,我们实现了需求:根据用户id查询用户信息的同时获取用户拥有的角色. 因为角色可以拥有多个权限,所以本篇博客我们升级需求为:根据用户id查询用户信息的同时获取用户拥有的角色以及角色包含的权限. 2. 实现方式 因为我们需要使用到权限表的映射,所以我们需要…
<if>标签 1.判断非空或不等于 <if test="assessTypes!= null and assessTypes!='' "> AND FIND_IN_SET(t1.assess_type,#{assessTypes}) </if> 2.判断等于某个固定字符 <if test='rankWay=="byAssessDate" and isDesc=="1" '> ORDER BY t1.…
关于jquery html()方法获取带有OBJECT标签的元素内容时,出现“类型不匹配.”的解决办法 解决办法: $("selector").clone().html()…
原理知识: 如果参数类型是原始类型,那么传过来的就是这个参数的一个副本,也就是这个原始参数的值,这个跟之前所谈的传值是一样的.如果在函数中改变了副本的 值不会改变原始的值. 如果参数类型是引用类型,那么传过来的就是这个引用参数的副本,这个副本存放的是参数的地址.如果在函数中没有改变这个副本的地址,而是改变了地址中的 值,那么在函数内的改变会影响到传入的参数. 如果在函数中改变了副本的地址,如new一个,那么副本就指向了一个新的地址,此时传入的参数还是指向原来的 地址,所以不会改变参数的值. St…
一.定义SQL语句 (1)select 标签的使用 属性介绍: id :唯一的标识符. parameterType:传给此语句的参数的全路径名或别名 例:com.test.poso.User或user resultType :语句返回值类型或别名.注意,如果是集合,那么这里填写的 是集合的泛型,而不是集合本身(resultType 与resultMap 不能并用) 例子: sql: <select id="userList" parameterType="user&qu…
MyBatis<forEach>标签的使用 你可以传递一个 List 实例或者数组作为参数对象传给 MyBatis.当你这么做的时候,MyBatis 会自动将它包装在一个 Map 中,用名称作为键.List 实例将会以“list”作为键,而数组实例将会以“array”作为键. foreach元素的属性主要有 item,index,collection,open,separator,close.  item表示集合中每一个元素进行迭代时的别名, index指定一个名字,用于表示在迭代过程中,每次…
一.定义SQL语句 (1)select 标签的使用 属性介绍: id :唯一的标识符. parameterType:传给此语句的参数的全路径名或别名 例:com.test.poso.User或user resultType :语句返回值类型或别名.注意,如果是集合,那么这里填写的 是集合的泛型,而不是集合本身(resultType 与resultMap 不能并用) 例子: sql: <select id="userList" parameterType="user&qu…
背景 考虑以下场景: InfoTable(信息表): Name Gender Age Score 张三 男 21 90 李四 女 20 87 王五 男 22 92 赵六 女 19 94 孙七 女 23 88 周八 男 20 91 StatusTable(状态表,指是否有在考试之前复习): Name hasReview 张三 是 李四 否 王五 是 赵六 是 孙七 否 周八 是 现在,我想知道所有复习过的学生的成绩,可以利用mysql中的子查询来实现: SELECT Score FROM Info…
1. 定义sql语句 1.1 select 标签 属性介绍: id :唯一的标识符. parameterType:传给此语句的参数的全路径名或别名 例:com.test.poso.User或user resultType :语句返回值类型或别名.注意,如果是集合,那么这里填写的是集合的泛型,而不是集合本身(resultType 与resultMap 不能并用) <select id="selectByPrimaryKey" resultMap="BaseResultMa…
mybatis中参数为list集合时使用 mybatis in查询 一.问题描述mybatis sql查询时,若遇到多个条件匹配一个字段,sql 如: select * from user where id in ('23','45','34') , 那么在 mybatis 中该如何实现呢? 二.实现思路1.方法一: java中将满足条件的值 list 转成符合格式的 sql 字符串2.方法二: mybatis的xml文件是基于OGNL表达式实现的,可以将满足条件的list直接传入到xml中,进…
MyBatis常用标签 ● 定义sql语句:select.insert.delete.update ● 配置JAVA对象属性与查询结构及中列明对应的关系:resultMap ● 控制动态sql拼接:if.foreach.choose ● 格式化输出:where.set.trim ● 配置关联关系:collection.association ● 定义常量及引用:sql.include MyBatis提供了对SQL语句动态的组装能力,大量的判断都可以在 MyBatis的映射XML文件里面配置,以达…
1. 定义sql语句 select 标签 属性介绍: id :唯一的标识符. parameterType:传给此语句的参数的全路径名或别名 例:com.test.poso.User或user resultType :语句返回值类型或别名.注意,如果是集合,那么这里填写的是集合的泛型,而不是集合本身(resultType 与resultMap 不能并用) <select id="selectByPrimaryKey" resultMap="BaseResultMap&qu…
经常会用到mybatis的Collection标签来做级联查询或递归查询,现通过一个伪例来简单的说明一下使用中的关键点: 首先先列出三个表,给出一个场景: 1,角色表 t_role( id,name )  2,菜单表 t_menu( id, name, pid ) 菜单表是个有个pid,指向上级菜单的id,所以是个树形表3,角色菜单关联表 t_role_menu( role_id, menu_id ) 角色和菜单对多关联java对象如下: //菜单对象 @Set @Get public clas…
1.collection标签 说到mybatis的collection标签,我们肯定不陌生,可以通过它解决一对多的映射问题,举个例子一个用户对应多个系统权限,通过对用户表和权限表的关联查询我们可以得到好多条记录,但是用户信息这部分在多条记录中是重复的,只有权限不同,我们需要把这多条权限记录映射到这个用户之中,这个时候可以通过collection标签/association标签来解决(虽然assocation标签一般是解决一对一问题的,但它实际上也能实现我们的需求,可以通过后面的源码看出来) 1.…
当配置mybatis返回int类型时 select id="getUserIdByName" parameterType="string" resultType="int"> SELECT id FROM user WHERE userName = #{userName} </select> 会报错如下: org.springframework.web.util.NestedServletException: Request p…