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

mybatis与jpa

1、官方文档

mybatis:mybatis-spring –

jpa:https://springdoc.cn/spring-data-jpa/

应用文档 



jpa详解_java菜鸟1的博客-CSDN博客

JPA简介及其使用详解_Tourist-xl的博客-CSDN博客_jpa的作用

2、使用比较

mybatis一般用于互联网性质的项目,后期项目性能调优比较方便,配置输出日志,直接输出sql便于线上排查问题,之前一直被诟病的手写sql,单表的有些组件都封装了,如mybatis-plus、tkmybatis,如果实体和表字段没建立对应关系,实体和表都全了但是对应关系有缺失,缺失的不会返回,还有一种就是由于粗心导致的实体或者表不全,这种就麻烦些,程序运行才能发现。

jpa一般适用于中小型项目,配置输出日志后,输出sql不好排查,直接把表字段转义为不方便查阅的字段,不直观,相比于mybatis,如果实体少了不全,程序启动时就会报错,相当于提前暴露了问题。它提供api封装好了对单表的操作,直接调用即可,不需要额外引进组件。

3、实际使用

日常整合springboot组件三步骤,引依赖--配置配置文件--有需要扩展的可以扩展配置类,使用注解,调用api。

jpa

     <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency>
<dependency><groupId>org.hibernate</groupId><artifactId>hibernate-jpamodelgen</artifactId>
</dependency>

 hibernate-jpamodelgen提供了一个方便获取实体类属性名的方法,当数据库或实体类的属性名改变后,不用去变动其他层代码。

Spring Jpa 自动根据实体类生成资源类_辉呀的博客-CSDN博客_jpamodelgen

实体类使用注解 

接口层

接着调用就完事了

条件查询

可参考:SpringDataJPA中使用Specification进行表连接多条件分页动态查询 - 代码先锋网

https://www.cnblogs.com/ydmysm/p/hhb_pageQuery.html

 

mybatis

  <!-- mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><!-- mybatis启动器 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis.starter.version}</version></dependency><!--mybatis-plus启动器--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatis.plus.version}</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-core</artifactId><version>${mybatis.plus.version}</version></dependency>

配置xml

<select id="getAmacRegisterSearchResults" resultType="cn.go.dao.irmcenter.result.Asult">SELECT DISTINCTtiar.`id`,tiar.`name`,tiar.`xx_name`,tiar.`xx_num`FROM`ts_xx_xc_rxx` tiar<where><if test="keyword != null">tiar.`name` LIKE #{keyword}OR tiar.`pxe` LIKE #{keyword}OR tiar.`xum` LIKE #{keyword}</if></where></select>
<update id="batchUpdateMs">UPDATE `ts_xia` SET `name` = <foreach collection="me" item="me" separator=" " open="CASE id" close="END">WHEN #{me.id} THEN #{me.name} </foreach>, `fans` = <foreach collection="med" item="me" separator=" " open="CASE id" close="END">WHEN #{me.id} THEN #{me.fans} </foreach>,`le` = <foreach collection="me" item="me" separator=" " open="CASE id" close="END">WHEN #{me.id} THEN #{me.level} </foreach>WHERE `id` IN <foreach collection="me" item="me" separator="," open="(" close=")">#{me.id} </foreach></update>
<update id="updateinfo" parameterType="xxxroupParam">update<include refid="xxx"/><set><if test="oor!=null">oor = #{oor},</if><if test="updateDate!=null">update_date = #{updateDate},</if><if test="status==null">status != -1</if><if test="status!=null">status = #{status}</if><if test="sequence!=null">sequence = #{sequence},</if><if test="mt!=null">mt = #{mt}</if></set>where id = #{mad}</update>
  <insert id="bind" parameterType="java.util.List">insert into <include refid="nod"/> (bd,nd,rd,opr,sts)values<foreach collection="list" item="item" index="index" separator=",">(#{item.bd},#{item.nd},#{item.rd},#{item.opr},#{item.st})</foreach></insert>

http://www.lryc.cn/news/19804.html

相关文章:

  • js 求解《初级算法》66. 加一
  • 力扣-游戏玩法分析
  • ZZNUOJ_用C语言编写程序实现1186 : 奖学金(结构体专题)(附完整源码)
  • 加油站ai系统视频监测 yolov5
  • 【JDK8新特性之Stream流-Stream结果收集案例实操】
  • Fiddler 抓包工具
  • 2023最新版网络安全保姆级指南,手把手带你从零基础进阶渗透攻防工程师
  • 排序基础之选择排序法
  • 2.24测试用例
  • 面试必刷101 Java题解 -- part 1
  • Python---关联与继承
  • 数据库行业的 “叛逆者”:大数据已“死”,MotherDuck 当立
  • Linux->进程优先级
  • loki 日志管理的安装部署使用
  • CTFer成长之路之反序列化漏洞
  • Python学习-----模块5.0(文件管理大师-->os模块)
  • 第45届世界技能大赛“网络安全”赛项浙江省选拔赛竞赛任务书
  • 【uniapp微信小程序】跨平台使用echarts的方案选择踩坑
  • WAF渗透攻防实践(16)
  • 高并发场景下机器性能优化sop
  • 【女程序员进大厂面试经验】
  • 计算机网络笔记(复试准备)第一章
  • WooCommerce 上传文件 Vanquish v71.6
  • zabbix4.0 Web页面配置 - 聚合图形的实现
  • 计算机网络 — UDP协议(看这一篇就可以
  • Pikachu靶场(暴力破解)
  • 浅谈script,link,import,@import引入
  • 【CSS】CSS 层叠样式表 ① ( 简介 | CSS 引入方式 - 内联样式 | 内联样式语法 | 内联样式缺点 )
  • 12.STM32系统定时器-SysTick
  • 28张图讲解支付系统的通用设计,漂亮!