java 查询功能实现的八种方式
前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。
只是記錄一下
1. HQL
2. Mybatis : mapper.xml 中寫 sql 。
3. Mybatis : 注解 @Select
@Select("select * from xxx_order where order_no = #{orderNo}") @ResultMap("BaseResultMap") XxxOrder selectByOrderNo(@Param("orderNo") String orderNo);4.?Mybatis : 注解 @SelectProvider
@SelectProvider(type = XxxOrderProvider.class, method = "listOrderPdDataSql") List<OrderPdExportVo> listOrderPdData(XxxOrderQuery query);# sql寫在 Provider 類中。詳細用法見文章:mybatis3 中 @Provider 的使用方式?
5. Mybatis : Example (此方法亦有用方法4實現.)
Example example = new Example(XxxRule.class); Criteria criteria = example.createCriteria(); criteria.andEqualTo("status", 1);詳細用法見文章:MyBatis : Mapper 接口以及 Example 使用實例、詳解?
關于 Example 分頁有三種方式,見文章 :mybatis 中 Example 的使用 :條件查詢、排序、分頁(三種分頁方式 : RowBounds、PageHelpler 、limit )
?6. Java Persistence API = JPA 、JPQL? ? ??
相關文章:JPA criteria 查詢:類型安全與面向對象
@PersistenceContext private EntityManager em; ...String querySql = "SELECT xxx_id FROM xxxsibilityWHERE dxxpxxxnt_id = '" + dxxpxxxntId + "' AND code != '10010'"; List<Object> xxxIdList = em.createNativeQuery(querySql).getResultList();7.?spring-data-jpa : JpaRepository<實體類, 主鍵類型>?
spring-data-jpa 相關文章:
spring data jpa 的 in 查詢 Specification 實現
spring-data-jpa 介紹 復雜查詢,包括多表關聯,分頁,排序?
使用 Spring Data JPA 簡化 JPA 開發
spring-data-JPA使用JpaRepository注解自定義SQL查詢數據庫多表查詢
spring-data-jpa 使用
例:
@Repository public interface WorkxxxRepository extends JpaRepository<Workxxx, Integer>, JpaSpecificationExecutor<Workxxx> { // 查詢方法 }?? ? @Autowired private WorkxxxRepository workxxxRepository; 用法1: public Object deleteDraft(User user) {return workxxxRepository.deleteDrafts(user.getId()); } 用法2: Page<Workxxx> page = workxxxRepository.findAll(new Specification<Workxxx>() {@Overridepublic Predicate toPredicate(Root<Workxxx> root, CriteriaQuery<?> query, CriteriaBuilder cb) {List<Predicate> list = Lists.newArrayList();//構造條件list.add(cb.equal(root.get("delFlag"), "0")); if (StringUtils.isNotEmpty(xxxName)) {list.add(cb.like(root.get("xxxName"), "%" + xxxName + "%"));}// 參數 search 可代表姓名、名稱、任務、類型中的任意一種if (StringUtils.isNotEmpty(search)) {Predicate p = cb.or(cb.like(root.get("xxxName"), "%" + search + "%"));p = cb.or(p, cb.like(root.get("xxxName"), "%" + search + "%"));p = cb.or(p, cb.like(root.get("xxxProject"), "%" + search + "%"));p = cb.or(p, cb.like(root.get("xxxType"), "%" + search + "%"));list.add(p);} Predicate[] p = new Predicate[list.size()];return cb.and(list.toArray(p));} }, new PageRequest(pageable.getPageNumber(), pageable.getPageSize(), pageable.getSort()));8.??JDBC直連數據庫,Statement、PrepareStatement查詢。? ? ? ??
?? ??? ? ?
?? ??? ? ??
總結
以上是生活随笔為你收集整理的java 查询功能实现的八种方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#中的Socket编程-TCP客户端
- 下一篇: linux 上 日志中查异常,指定显示异