Java最新什么样的Java-DAO层最适合我们的项目,springboot面试题2024

最后

金三银四到了,送上一个小福利!

image.png

image.png

专题+大厂.jpg

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  1. ResultSet rs = stmt.executeQuery("SELECT id, name FROM Employees");

  2. while(rs.hasNext()){

  3. log.info("Employee id: "+ rs.getInt("id") + " has name: "+ rs.getString("name"));

  4. }

为了减少大量样板代码,建议使用jdbc模板工具,如Spring JDBC模板或Apache DBUtils。例如,在该请求中,Spring模板发送带有参数的请求、反序列化数据、关闭连接。这一切都发生在一句代码中:

  1. Useruser = jdbc.qeuryForObject("SELECT * FROM USERS WHERE ID = ?", 1, User.class);

面向对象的Java查询

JOOQ框架提供了一种基于生成实体的语言。使用这种语言,可以创建编译时安全的查询。JOOQ可以为许多数据库生成方言。此外,它还清理样板代码,如关闭连接等。

  1. UserRecord user = newUserRecord();

  2. user.setId(1);

  3. user.setName("Peter");

  4. Result<UserRecord> books1 = DSL.using(configuration)

  5. .selectFrom(USERS)

  6. .where(condition(user))

  7. .fetch();

MyBatis:支持查询的简单表单

对象关系映射或ORM提供了另一种与数据库通信的方式。其思想是在代码中创建Java对象(实体)和它们对应的表之间的映射。有代表性的ORM之一是MyBatis框架。

MyBatis是一个轻量级框架,它使用查询在实体和表之间创建映射(而不是bean结构,就像在JPA提供程序中一样,比如Hibernate)。因此,这个框架使用查询并提供ORM特性。在这里,可以看到一个简短的示例(没有配置文件):

  1. // Bean mapping

  2. publicinterfaceBlogMapper{

  3. @Select("SELECT * FROM blog WHERE id = #{id}")

  4. Blog selectBlog(int id);

  5. }

  6. // Fetching data

  7. BlogMapper mapper = session.getMapper(BlogMapper.class);

  8. Blog blog = mapper.selectBlog(101);

Hibernate and Spring Data

这两种技术都支持JPA (Java持久性应用编程接口)。这意味着这两种解决方案都可以部署到应用服务器上。JPA标准要求表/列和Java对象(实体)之间的映射。例如,用户表可以映射到以下实体:

  1. @Data// this is not hibernate annotation, it's lombok getter/setter generator

  2. @Entity

  3. @Table(name = "USERS")

  4. publicclassUser{

  5. @Id

  6. @Column(name = "id")

  7. privateInteger id;

  8. @Column(name = "name")

  9. privateString name;

  10. }

Hibernate

这是最流行的ORM框架,具有许多内置特性。它在大约20年前首次发行。Hibernate还支持自定义SQL查询的HQL语言。

  1. Session session = sessionFactory.openSession();

  2. User oldUser = (User) session.get(User.class, 1); //get user

  3. User newUser = newUser(123,"John");

  4. session.save(developer); //add user

最后:学习总结——MyBtis知识脑图(纯手绘xmind文档)

学完之后,若是想验收效果如何,其实最好的方法就是可自己去总结一下。比如我就会在学习完一个东西之后自己去手绘一份xmind文件的知识梳理大纲脑图,这样也可方便后续的复习,且都是自己的理解,相信随便瞟几眼就能迅速过完整个知识,脑补回来。下方即为我手绘的MyBtis知识脑图,由于是xmind文件,不好上传,所以小编将其以图片形式导出来传在此处,细节方面不是特别清晰。但可给感兴趣的朋友提供完整的MyBtis知识脑图原件(包括上方的面试解析xmind文档)

image

除此之外,前文所提及的Alibaba珍藏版mybatis手写文档以及一本小小的MyBatis源码分析文档——《MyBatis源码分析》等等相关的学习笔记文档,也皆可分享给认可的朋友!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

sdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

需要这份系统化的资料的朋友,可以点击这里获取

  • 28
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值