Spring Data JDBC Tutorial: How to simplify data access in Spring Boot
Vložit
- čas přidán 6. 10. 2022
- I'm really excited to bring you this Spring Data JDBC tutorial. In this lesson, you can follow by creating your own Spring Boot application from scratch and accessing a database with Spring Data JDBC. You will learn how to create relationships with domain objects and across aggregates. Speaking of aggregates we will take a brief stop to discuss aggregates and aggregate roots from Domain Driven Design.
🔗Resources & Links mentioned in this video:
Github Repo: github.com/danvega/blog-jdbc
Connect and Configure H2: • H2 Database Spring Boo...
👋🏻Connect with me:
Website: www.danvega.dev
Twitter: / therealdanvega
Github: github.com/danvega
LinkedIn: / danvega
Newsletter: www.danvega/dev/newsletter
SUBSCRIBE TO MY CHANNEL: bit.ly/2re4GH0 ❤️ - Věda a technologie
"I've been blogging for 20 years and I've never got comments" ... Savage!
Also, subbed! Thank you, Dan!
Awesome presentation! I have used Spring Data JDBC in one of my side projects. Initially it took some time to understand, but it simplifies many things as compared to JPA. Thanks.
finally someone smart talking about tracking entity changes! thank you so much Dan!
Thank you, Max!
Your channel is a goldmine!
Thanks for clearing my confusion about Aggregates and how they are related.
You are welcome!
this channel is pure gold
I found this channel today and I had to subscribe. Great content 👏
Thank you!
Thank you Dan. Was looking for this
Glad to help
I never used Spring data JDBC before but this video opens a new perspective for me about having more understandement and about relationships. Thank you Dan ! This makes wanna dive more and how to do a few things with spring data JDBC :
1. Pagination of the Comments within a Post when reading a Post, assuming we had to add it as feature
2. Filtering and sorting of Comments with a given post
3. Transactions between Post and Author
As an Android dev, I am used to build databases with sqlite without any annotations. This is working for me since years in real world apps. So diving in the Hibernate stuff, it feels like a pain in the ass to do even simple inserts.
I will give JDBC a try! Thanks for your tutorial!
Nice walkthrough! I'm not sure (Post, Comment) is a good aggregate. It may work for a tiny blog where posts usually have 10 comments, but as soon as you go in the hundreds & thousands of comments, with comment threads, this stops being a viable design. Treating it as a consistency boundary in that case is crazy.
Loved your video
Appreciate it!
Awesome tutorial, I liked the in aggregate solution i.e between Post and Comment. I am curious on how you would go about to solve to oddities below
1. Pagination of the Comments within a Post when reading a Post, assuming we had to add it as feature
2. Filtering and sorting of Comments with a given post
3. Transactions between Post and Author
thanks a lot. great tutorial
You are welcome!
Thank you
You're welcome
great video
Thank you, Igor!
Great tutorial, it was really helpful. One thing that left me a bit disappointed is you mentioned the "version" column in the Post entity, which is something specific to Spring Data JDBC but did not really explain it. Do you know where I can read more about this concept? Cheers
Thanks.
You're welcome
great tutorial. could you please show how to solve this using JPA and entity mapping? thanks
Great suggestion! github.com/danvega/office-hours/discussions/41
😁I will read ur blogs and leave comments since today.
Dan, i found that no comment input text in your blogs. NVM, i will read your github discussions.
I turned off blog comments. You can always email me or reach out to me on twitter. check out danvega.dev for all of my info.
Hey Dan. Can I do same thing without using JDBC using only java 8 stream?
@Dan Vega Please do one on Spring Data JPA
So if I want to see only list of posts without comments on /posts, I need to look at them as separate aggregates, right? And in single post view I would load that comments (/posts/1).
Hi Dan! I want to know how to implement pagination + inner conditions like (condition OR condition) AND (condition OR condition) in spring data jdbc. Please help
out on this
Hello, can you explain me why i have "Internal Server Error" when i run this https request in postman? Thanks
What's the use of author repository?
can we use spring data jdbcd combine with spring data jpa
I was thinking that a comment would also be associated with an 'Author' i.e. the author of that comment. Could aggregates overlap to share entities? In this case, 'Comment' would be shared with the aggregate having 'Author' and the other one having 'Post'. Could this be possible?
Do we have to mark command line runner as @Bean explicitly, will spring not automatically take into context as it's comnand line runner..
Yes you need to mark it as a bean. If you create a class that implements the CLR you will need to mark that with @Component.
I'm puzzled
Entitys identity should be based on primary key, and on primary key only (otherwise it is a value object)
However, you are using record as Author entity without overriding equals (and hashCode). How can this even work?
Why not use Lombok for getters and setters
Around 33:19 you are querying rows from comment table. There's no primary key. How can we have multiple comments on the same Post-row?
Hi Dan, thank you so much on this video, I am big fun of your work :). I downloaded and tried code from this video but it didn't work. Can you please check? Thank you so much.
Where is your blog? I want to leave a comment.
Over the years being in different teams and working with different people, i have come to the conclusion that JPA and Hibernate is poorly understood by the majority of people and usually it makes more harm than help. I personally always use Spring JDBC and write plan SQL queries for everything along with RowMappers. Having a strong grasp of SQL helps me have full control over everything and i don't have to care about some strange behavior of JPA and Hibernate.
Anyway if the people at the team understand it properly, than i see no issues with using it.
This is really insane... jdbc, jdbctemplate, jpa, spring data jpa, spring data jdbc, hibernate... It's really hard to understand what is what and when to use what...
Great. Just when i was about to quit on dealing a simple öne-to-many rel. with JPA
AHAHAHA I hate this HATE relations in JPA, now, I'm like you
Hi Dan, this is very good tutorial. Some doubts, could you please help in clarifying. 1) In spring-data-jdbc, how are classes mapped to actual table where data gets persisted? In the application that you showed, Post is a class (and since we are not using JPA, so we don't have @Entity annotation), how does this module come to know which table in DB does it need to persist a class? 2) Since spring-data-jdbc doesn't use any ORM , so how does this mapping is happening 3) I was under (mis) conception that Repository is available for spring-data-jpa only , but it seems that Repository concept is in spring-data-jdbc as well (so we can use simple repo.save()) - this is confusion; as same / similar functionality is provided by spring-data-jpa; what exactly is the differnce and how sping-data-jdbc is able to achieve this, even without having ORM (which does table == Class mapping etc.). Could you please help in clarifying this doubt?
How Data JDBC knows that the COLUMN 'first_name' in the DB refers to the class attribute 'firtstName' ?
If i were to change database feom postgres to mysql, say. How much effort would it take? What are the steps to proceed