相信用过hibernate的兄弟们都会因为多表复杂查询后,为返回的结果如何组装到一个VO中而烦恼不已.我也不停的为此而烦恼,但是在看了hibernate的transform后,感觉这个方法还挺管用的. 例如现在有两张表,一张是user表,放了一些用户的信息,另外一张表是用户发表的帖子,里边有一个user的外键.我们需要查询出来,某个人发布的帖子,sql如下: select u.userName,p.title,p.addTime from user as u,post as p whe
type Result struct { Total int } var result Result //当天修改作业的总时间:分钟 dao.DB(dao.HomeworkTable).Raw("SELECT sum(round((UNIX_TIMESTAMP(finishtime)-UNIX_TIMESTAMP(stime))/60)) as total from homework WHERE remarks !='' AND ctime = to_days(now()) AND finish
官方文档 https://docs.spring.io/spring-data/jpa/docs/1.11.16.RELEASE/reference/html/#repositories.special-parameters 1.根据时间排序时候查询遇见的错误 No property desc found for type Date! 出错前写法 findAllOrderByCreateTimeDesc 修改后写法 findAllByOrderByCreateTimeDesc 参考文档: htt
第一种(用Mapper.xml映射文件中定义了操作数据库sql) 注意点: 1.#{}与${} #{}表示一个占位符,使用占位符可以防止sql注入, ${}通过${}可以将parameterType传入的内容拼接在sql中,不能防止sql注入,但是有时方便 例 SELECT * FROM USER WHERE username LIKE '%${value}%' 再比如order by排序,如果将列名通过参数传入sql,根据传的列名进行排序,应该写为: ORDER BY${columnName}
项目用的 Mybatis,今天改一个需求,落地实现是批量更新,且只需要根据主键(id)来更新一个字段(name). 于是,没有犹豫,像下面这样设计了数据结构: 既然是批量更新,那外层肯定是 List List 中每个元素,只包含 id & name,于是,选择了用 org.apache.commons.lang3.tuple.Pair 来封装数据(就是不想自己再写一个 DO 或者 VO 或者 MO) 最终的数据结构是:List<Pair<Integer, String>>
本文会使用一个案例,就mybatis的一些基础语法进行讲解.案例中使用到的数据库表和对象如下: article表:这个表存放的是文章的基础信息 -- ---------------------------- -- Table structure for article -- ---------------------------- DROP TABLE IF EXISTS `article`; CREATE TABLE `article` ( `article_id` ) NOT NULL AU