前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >个人常用语句笔记-Java

个人常用语句笔记-Java

作者头像
WindCoder
发布2018-09-19 15:52:40
4420
发布2018-09-19 15:52:40
举报
文章被收录于专栏:WindCoderWindCoder

基础

判断不为空

代码语言:javascript
复制
import org.apache.commons.lang3.StringUtils;

StringUtils.isNotBlank(searchText)

try-with-resources

JDK1.7的新语法,这种try语句可以自动执行资源关闭过程,无需再在finally中显式关闭流。

只有所有实现AutoCloseable接口的类的对象才可以由这种带资源的try语句进行管理。

从JDK7开始,Closeable扩展了AutoCloseable。因此,在JDK7中,所有实现了Closeable接口的类也都实现了AutoCloseable接口。

代码语言:javascript
复制
try (FileInputStream fis = new FileInputStream("windcoer_com.txt")) {
	.....
}

抛出异常

代码语言:javascript
复制
throw new AuthenticatException("not-the-owner");
throw new BusinessException("needed-login");

JPA

@PageableDefault

默认排序
代码语言:javascript
复制
@PageableDefault(direction=Direction.DESC,sort={"displayOrder"}) Pageable pageable

条件查询

涉及翻页、动态查询、字符串小写化后模糊查询

代码语言:javascript
复制
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;


public Page<Award> allAwards(Award award,String searchText,Pageable pageable){
    return super.findAllWithDataRule((root,query,cb)->{
        Predicate predicate = cb.equal(root.get("isDeleted"), false);
        predicate = cb.and(predicate,cb.equal(root.get("activity").get("id"), ugcAward.getActivity().getId()));			
        if(StringUtils.isNotBlank(searchText)) {
            Predicate predicateOr = cb.or(cb.like(cb.lower(root.get("createdBy").get("username")), "%"+StringUtils.trim(searchText).toLowerCase()+"%"),
            cb.like(cb.lower(root.get("createdBy").get("displayName")), "%"+StringUtils.trim(searchText).toLowerCase()+"%"));
            predicate = cb.and(predicate,predicateOr);
        }
        return predicate; 
    }, pageable);
}

多表联查

代码语言:javascript
复制
  Subquery<Long> subquery = query.subquery(Long.class);
  Root<CategoryTreeXref> cateXrefRoot = subquery.from(CategoryTreeXref.class);
  subquery.select(cateXrefRoot.get("childId"));
  subquery.where(cb.equal(cateXrefRoot.get("parentId"), caseInfo.getCategory().getId()));
  predicate = cb.and(predicate,cb.in(root.get("category").get("id")).value(subquery));

虚拟列(@Formula)

代码语言:javascript
复制
import org.hibernate.annotations.Formula;

@Formula("(select count(distinct ae.user_id )  from activity_enrollment ae where ae.activity_id = id and ae.is_deleted = 0)")
	private Long enrollmentCount;

持久化前自动赋值(@PrePersist)

代码语言:javascript
复制
import javax.persistence.PrePersist;


@PrePersist
public void preInsert() {
    if(this.box == null) {
        Box box = new Box();
        this.setBox(box);
    }
}

Mybatis

${}-属性property

不同的属性值通过包含的实例变化.

属性值也可以被用在 include 元素的 refid 属性里或者 include 内部语句中,例如:

代码语言:javascript
复制
<sql id="sometable">
  ${prefix}Table
</sql>

<sql id="someinclude">
  from
    <include refid="${include_target}"/>
</sql>

<select id="select" resultType="map">
  select
    field1, field2, field3
  <include refid="someinclude">
    <property name="prefix" value="Some"/>
    <property name="include_target" value="sometable"/>
  </include>
</select>

当一段sql语句仅某些几个字段等不同时,为了重用sql语句,可用此方式解决。 Mapper XML 文件

模糊查询

MySQL
代码语言:javascript
复制
 lower(name) like  concat('%',lower(#{course.name}),'%')
Oracle
代码语言:javascript
复制
lower(name) like  '%'||lower(#{course.name})||'%'
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基础篇
    • 判断不为空
      • try-with-resources
        • 抛出异常
        • JPA
          • @PageableDefault
            • 默认排序
          • 条件查询
            • 多表联查
              • 虚拟列(@Formula)
                • 持久化前自动赋值(@PrePersist)
                • Mybatis
                  • ${}-属性property
                    • 模糊查询
                      • MySQL
                      • Oracle
                  相关产品与服务
                  云数据库 MySQL
                  腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档