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

河北明迈特的网站在哪里做的/游戏代理平台哪个好

河北明迈特的网站在哪里做的,游戏代理平台哪个好,有哪些免费的云服务器,企业公司网站 北京Spring Data JPA的查询方式 使用JPQL的方式查询 dao接口 使用Spring Data JPA提供的查询方法已经可以解决大部分的应用场景,但是对于某些业务来说,我们还需要灵活的构造查询条件,这时就可以使用Query注解,结合JPQL的语句方式完…

Spring Data JPA的查询方式

使用JPQL的方式查询

dao接口

使用Spring Data JPA提供的查询方法已经可以解决大部分的应用场景,但是对于某些业务来说,我们还需要灵活的构造查询条件,这时就可以使用@Query注解,结合JPQL的语句方式完成查询

@Query 注解的使用非常简单,只需在方法上面标注该注解,同时提供一个JPQL查询语句即可

 /*** 根据客户名称查询客户*    使用jpql的形式查询*  jpql: from Customer where custName = ?*  配置jpql使用@Query注解*    属性value 配置jpql属性*/@Query(value = "from Customer where custName = ? ")public Customer findJpql(String custName);/*** 根据客户名称和客户id查询客户*    jpql: from Customer where custName = ? and custId = ?* 多个占位符参数*    赋值的时候,默认的情况下,占位符的位置需要和方法中参数的位置保持一致* 可以指定占位符参数的位置*    可以使用 ?+索引的方式,指定占位的取值来源*    例:custName = ?2 表示使用参数中第二个的取值 custId = ?1 表示使用参数中第一个参数的取值*      @Query("from Customer where custName = ?2 and custId = ?1")*     public Customer findCustNameAndId(Long id,String name);*/@Query("from Customer where custName = ? and custId = ?")public Customer findCustNameAndId(String name,Long id);/*** 使用jpql完成更新操作*    需求:根据id更新客户的名称*           更新2号客户的名称 将名称改为 程序猿*    sql:update cst_customer set cust_name="程序猿" where cust_id=2*    jpql: update Customer set custName=? where custId= ?* @Query:代表的是进行查询*    更新不是查询 需要声明此方法是用来更新操作的*  @Modifying*      代表当前执行的方法是一个更新操作*/@Query(value = "update Customer set custName= ? where custId= ?")@Modifyingpublic void updateCustomer(String custName,Long custId);

测试方法
查询

 @Testpublic void testFindJpql(){Customer customer = customerDao.findJpql("星图");System.out.println(customer);}

修改

 /*** 根据id修改客户姓名*    springDataJpa中使用jpql完成更新/删除操作*      需要手动添加事务的支持 必须*      默认会执行结束之后回滚事务*      @Rollback(value = false):设置不自动回滚  true 自动回滚* 修改需要开启事务的支持*/@Test@Transactional()@Rollback(value = false)public void testUpdateCustomer(){customerDao.updateCustomer("P图",2l);}

使用SQL语句查询

dao接口

 /*** SQL语句查询方式* 特有的查询 需要在dao接口上配置方法*  在新添加的方法上,使用注解的形式配置SQL查询语句*  注解:@Query 两个参数* @Value:配置jpql 也可以配置SQL语句* nativeQuery是否使用本地查询:值 false(使用jpql查询  默认值就是false)|true(使用本地查询 SQL查询)*   需求 查询全部的客户*     sql:select * from cst_customer*     @Query配置SQL查询 value: SQL语句  nativeQuery: 查询方式*///@Query(value = "select * from cst_customer",nativeQuery = true)//根据用户名模糊查询@Query(value = "select * from cst_customer where cust_name like ?",nativeQuery = true)public List<Object[] > findSql(String name);

测试方法

/*** 使用SQL语句查询全部客户*/@Testpublic void testFindSql(){List<Object[]> list = customerDao.findSql("%猿%");for (Object[] obj:list){System.out.println(Arrays.toString(obj));}}

方法命名规则查询

顾名思义,方法命名规则查询就是根据方法的名字,就能创建查询。只需要按照Spring Data JPA提供的方法命名规则定义方法的名称,就可以完成查询工作。Spring Data JPA在程序执行的时候会根据方法名称进行解析,并自动生成查询语句进行查询

按照Spring Data JPA 定义的规则,查询方法以findBy开头,涉及条件查询时,条件的属性用条件关键字连接,要注意的是:条件属性首字母需大写。框架在进行方法名解析时,会先把方法名多余的前缀截取掉,然后对剩下部分进行解析。
dao接口

 /*** 方法名称命名规则:*     是对jpql的查询,更深入的一层封装。*     我们只需要按照SpringDataJpa提供的方法名称规则定义方法,不需要再去配置jpql语句完成查询*//*** 方法名的约定*   findBy开头:代表查询*          findBy+对象中属性名(首字母大写)   CustName: 代表查询的条件 根据哪个属性进行查询*         默认情况 使用等于的方式进行查询*            特殊查询的查询方式*   例:findByCustName:    代表根据客户名称查询**   在springDataJpa的运行阶段*      会根据方法名称进行解析  把findBy翻译成 from xxx(实体类)  属性 where  custName =**   findBy+属性名称(根据属性名称进行完成匹配的查询 = )*     findBy+属性名称+“查询方式(Like | isnull)”*     findByCustNameLike  代表按照客户名称进行模糊匹配**   多条件查询*     findBy+属性名+“查询方式” + 多条件查询的连接符(and,or等)+属性名+“查询方式”*//*** 根据名称查询* @param custName* @return*/public Customer findByCustName(String custName);/*** 根据名称模糊查询* @param custName* @return*/public List<Customer> findByCustNameLike(String custName);/*** 使用客户名称模糊匹配和客户所属行业精准匹配的查询* 多条件查询*/public Customer findByCustNameLikeAndCustIndustry(String custName,String custIndustry);

测试方法

 /*** 测试方法命名规则的查询*/@Testpublic  void  testFindByCustName(){Customer customer = customerDao.findByCustName("程序猿");System.out.println(customer);}/*** 测试根据用户名模糊查询*/@Testpublic void testFindByCustNameLike(){List<Customer> list = customerDao.findByCustNameLike("P%");for (Customer customer:list) {System.out.println(customer);}}/*** 测试使用客户名称模糊匹配和客户所属行业精准匹配的查询*/@Testpublic void testFindByCustNameLikeAndCustIndustry(){Customer customers = customerDao.findByCustNameLikeAndCustIndustry("%猿", "多媒体");System.out.println(customers);}
}
http://www.lbrq.cn/news/1071919.html

相关文章:

  • 哪里有专门做网站的/国外媒体报道
  • 做网站需要做数据库/网络营销实训个人总结
  • 网站开发流程荆州/新版阿里指数官网
  • 从事网站开发办理什么个体/综合性b2b电子商务平台网站
  • 那些网站布局好看/长沙百度地图
  • 佛山网站建设公司哪家最好/国产最好的a级suv88814
  • 新手做网站的详细步骤/厦门seo百度快照优化
  • 微信html5模板网站/如何做谷歌seo推广
  • 网站建设心得8000字/seo能从搜索引擎中获得更多的
  • 网站的风格与布局的设计方案/seo职业培训学校
  • 网站上二维码怎么做的/百度指数如何分析数据
  • 深圳网站建设亿联时代/东莞最新消息 今天
  • 网站建设开发做网站吧/最打动人心的广告语
  • dw网页制作下载/seo优化托管
  • 网站http500内部服务器错误/品牌广告语
  • 怎么建立自己的网站?/百度投诉中心在线申诉
  • 绍兴网站建设哪好/百度收录怎么弄
  • 怎么在自己做的网站上发视频/百度知道首页官网
  • 厦门规划建设网站/泉州seo代理计费
  • 有什么网站可以做援交/买外链有用吗
  • 房地产市场需求分析/泰州百度关键词优化
  • 百度免费建个人网站/国外网站排名 top100
  • 东莞建站网站建设产品推广/白帽优化关键词排名seo
  • 个人网站设计论文的结论/seo引擎搜索网站
  • 做网站沈阳/网络广告推广平台
  • 沈阳网站建设专家/厦门网站seo
  • 建设银行对公网站/百度怎么发帖做推广
  • 仿淘宝网站/漳州网络推广
  • 查商标是否被注册在哪里查/济南网络seo公司
  • 今天哈尔滨最新通告/杭州优化外包
  • 第六章第三节 TIM 输出比较
  • JavaScript:编程世界中的“语盲”现象
  • RAG-Semantic Chunking
  • SQL语言学习(group by,having)
  • 简化理解I2C总线
  • 高性能MCP服务器架构设计:并发、缓存与监控