<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="atom.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://fundamentalsofsoftwareengineering.tech/blog</id>
    <title>Fundamentals of Software Engineering Blog</title>
    <updated>2025-11-07T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://fundamentalsofsoftwareengineering.tech/blog"/>
    <subtitle>Fundamentals of Software Engineering Blog</subtitle>
    <icon>https://fundamentalsofsoftwareengineering.tech/img/fse_dark.png</icon>
    <entry>
        <title type="html"><![CDATA[The Most Important Advice]]></title>
        <id>https://fundamentalsofsoftwareengineering.tech/blog/the-most-important-advice</id>
        <link href="https://fundamentalsofsoftwareengineering.tech/blog/the-most-important-advice"/>
        <updated>2025-11-07T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[In this short post,]]></summary>
        <content type="html"><![CDATA[<p>In this short post,
I want to share with you the most important piece of advice I ever received when I started out as a programmer.
It was so simple and yet packed with power!</p>
<p>When I started programming in the late 80's, there was no Internet and the word Google was not invented yet.
So we resolved to books and people that knew the answers we had questions about.</p>
<p>I bought every book I could find on programming.
Unfortunately, a book only says what it says and no more.
Sometimes you are lucky, and what the book says is enough on a topic.
Other times you may need the collective knowledge of a number of books to understand a topic.</p>
<p>Naturally, the better option was to ask someone who already knows the answers.
In my case, it was a friend teaching computer science at my alma mater, which was about 120 km from where I lived.
One weekend I decided to visit him and ask as many programming-related questions as I could possibly think of.</p>
<p>Ironically, I cannot remember anything we discussed, except this one thing he said.
And this one thing has stuck with me through the years.
I use it most days.
So what exactly did he say to me?</p>
<p>He said, "<em>Remember, computers do not do what you want them to do. They do what you tell them to do</em>."
That's it!</p>
<p>Yet, you have no idea how many times this has saved my programmer butt over the years.
It has helped me more than anything else to solve programming errors.</p>
<p>Sometimes, I end up literally just starting at the code on my screen.
I will get to a point where I simply cannot figure out why my code doesn't work.
Sometimes, I can be stuck on this for days.
Eventually I stop staring at my screen, sit back, and ask myself, "Ok, dummy, why did you tell the computer to do this if you want it to do something else?"</p>
<p>And lo and behold, most of the time, the answer stares me right back in the face.
It's amazing how often this change of mindset has helped me find errors in my code.</p>
<p>And coding errors you are going to have.
Lots of them.
You can trust me on that one.</p>
<p>So, if there is one thing only you take away from this website, make it this little piece of advice.</p>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_BuS1"><p>Computers do not do what you want them to do. They do what you tell them to do.</p></div></div>
<p>By the way, I literally have problems with dry eyes because of all the starting at the screen over the years.
Apparently, programmers do not blink enough, which ends up damaging their eyes.
So, please, blink regularly so your eyes can get the necessary lubrication.</p>]]></content>
        <author>
            <name>Deon Slabbert</name>
        </author>
        <category label="Programming" term="Programming"/>
        <category label="Getting Started" term="Getting Started"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[The Student]]></title>
        <id>https://fundamentalsofsoftwareengineering.tech/blog/the-student</id>
        <link href="https://fundamentalsofsoftwareengineering.tech/blog/the-student"/>
        <updated>2025-11-06T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[So who will benefit from The Becoming a Programmer Series?]]></summary>
        <content type="html"><![CDATA[<p>So who will benefit from <em>The Becoming a Programmer Series</em>?</p>
<p>I know it sounds like a cliché, but the idea was to build the courses I would have loved to learn from when starting out.
Something that guides me one step at a time, leaving no gaps in the process.
Here is what I mean...</p>
<p>You decide to learn to program and pick the JavaScript language, for example.
Next, you buy the <em>Learn JavaScript in Thirty Days</em> course and you start learning.
After a while, things are getting difficult, all the while you have not yet fully comprehended the beginning parts as well.
Soon you quit the course and decide that life is too short for this sh*t.</p>
<p>My son, who is also a software developer, while at university, helped during a "Learn Python" day session.
His job was to help people install Python and help when the code didn't do what it was supposed to.
By the end of the day, the attendees built an app that could do an API call to their Facebook profile.
Those attendees paid lots of money for that session.
They were cheated into thinking they could learn Python in a day.
Most attendees did not know how to install software.
Needless to say that they had no idea what an API was.
My son was so disgusted with the whole process that he never returned to assist.</p>
<p>So what went wrong here?
Simple! They progressed way too fast.
We need time for things to settle in our brains.
Although we have technically unlimited storage space, we do not have unlimited energy.
Most of us can focus for three hours a day.
Five hours max!</p>
<p>So, when learning new things, we have to learn in small chucks.
Each chunk needs to make total sense.
And each chunk must be linked to stuff already known.
Remember associative learning?</p>
<p>This is how I intend to teach you.
One small thing at a time.
You will know what to learn, why you need to learn it, and you will learn just enough for the job at hand.</p>
<p>The Becoming a Programmer Series is focused on progressing slowly while leaving no gaps.
So, once you have worked through my series, those other online courses will make a lot more sense for you.
It's just wise to build a solid foundation before you start building the walls and roof.</p>
<p>So here is a short list of people I think may benefit from my method:</p>
<ul>
<li class="">You want to go at this on your own with no intention to attend university.</li>
<li class="">You are planning to study computer science at university but need a thorough introduction into the world of programming.</li>
<li class="">You are curious about what this programming thing is all about.</li>
<li class="">You are already learning to program but find that there are things that do not make sense, and you need to fill in the gaps.</li>
<li class="">And, of course, everybody else who wasn't mentioned above.</li>
</ul>]]></content>
        <author>
            <name>Deon Slabbert</name>
        </author>
        <category label="Programming" term="Programming"/>
        <category label="Getting Started" term="Getting Started"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[The Solution]]></title>
        <id>https://fundamentalsofsoftwareengineering.tech/blog/the-solution</id>
        <link href="https://fundamentalsofsoftwareengineering.tech/blog/the-solution"/>
        <updated>2025-11-05T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[In the previous post, we discussed the problems we will face when starting out on our journey to become a programmer.]]></summary>
        <content type="html"><![CDATA[<p>In the previous post, we discussed the problems we will face when starting out on our journey to become a programmer.
We identified four questions that we need answers to:</p>
<ol>
<li class="">Where do I start?</li>
<li class="">What do I learn?</li>
<li class="">When do I know enough?</li>
<li class="">Where do I go next?</li>
</ol>
<p>The short answer is, "You need a roadmap!"
And not just any old roadmap.
You need a roadmap that will answer all four of these questions.
This roadmap will tell you:</p>
<ol>
<li class="">What topic to start with</li>
<li class="">What about that topic you need to know</li>
<li class="">When it is time to move on to another topic</li>
<li class="">What topic to move on to next</li>
</ol>
<p>So, where are you going to find such a roadmap?
Glad you asked!
It just so happens that I have developed such a roadmap.
I call it <strong>The Becoming a Programmer Series</strong>.
And you will find that roadmap in the Tutorials section of this website.
How is that for convenience?</p>
<p>I will take your hand and lead you step by step through your journey.
I have the benefit of knowing stuff that you don't know yet.
So I can show you the smart cuts to take.
Remember, no shortcuts, just smart cuts.
This way you will only learn the things necessary to do the job at that particular point in time.
If the next job requires new skills, we will add new information to your existing knowledge base.
Thus, no, information overload!</p>
<p>The other important thing is the order in which you will learn things.
I have designed the lessons in such a way that each new thing you learn will build upon what you have learned already.</p>
<p>For example, let's say the goal is to build a web application to capture your piano practice sessions.
As this is a typical Information System, you know there will be three layers.
You also know that the database is the most important, because without a database, there is no app.
So, the Becoming a Programmer series will first teach you everything you need to know to design and build the database.
After that, you will learn how to build the business logic for such an app.
Once you can do how to build the business layer of the app,
you will learn how to make this business layer 'talk' to the database you created earlier.
That, by the way, requires a different skill set than the skill set required to build the business layer.
Once the business layer is complete and can can communicate with the database, it is time to build a user interface.
Once the user interface has been built,
you have to learn how to make the user interface 'talk' with the business layer of the app.
Once again, that requires a different skill set.</p>
<p>As you can see, there are at least five layers in your app:</p>
<ol>
<li class="">The Database Layer</li>
<li class="">The Business Logic Layer</li>
<li class="">The Data Access Layer</li>
<li class="">The User Interface Layer</li>
<li class="">The Business Access Layer</li>
</ol>
<p>All five of these layers require a different skill set, and we will also learn things in the order above.</p>
<p>On top of it all, you will learn different technology stacks.
A technology stack is a combination of the programming languages,
frameworks, libraries, databases, and build tools you are using to build an application.
This list is not exhaustive,
but it gives you a good idea that there is a bit more to software development than meets the eye initially.
Also, don't worry about any of the terms mentioned.
Eventually, they all will make sense.</p>
<p>Let's say we are going to use Java to build our music practice log app.
We will then pick the following technology stack:</p>
<ul>
<li class="">Java programming language</li>
<li class="">PostgreSQL database</li>
<li class="">Spring Boot Framework</li>
<li class="">Gradle build tool</li>
<li class="">Git version control</li>
<li class="">Hibernate JPA implementation</li>
<li class="">Spring MVC framework</li>
<li class="">Spring Security</li>
<li class="">Apache Commons Lang library</li>
<li class="">Eclipse IDE</li>
<li class="">JUnit for unit testing</li>
</ul>
<p>And so the list goes on and on...</p>
<p>If you decide to build the app with C#, your technology stack will look different.
Same goes for JavaScript or Python.
Different stacks each time.</p>
<p>I guess a fair question would be, "Who decides what goes into a technology stack?"
The answer is a typical IT one.
It depends!
On what you ask?
On things like project requirements, team expertise, scalability,
performance, development speed, time-to-market, budget, maintenance, and component compatibility to name a few.</p>
<p>Luckily for us, many of these decisions have been made for us by the developers of frameworks.
Thus, if we decided to use a particular framework, most of the technology choices have been made.
Especially with what is called opinionated frameworks.</p>
<p>Any way, much more of this later in the series.</p>
<p>All you need to take away for now is that there is help available to become a programmer in the form of <strong>The Becoming a Programmer Series</strong> found in the <strong>Tutorials</strong> section of this website.</p>]]></content>
        <author>
            <name>Deon Slabbert</name>
        </author>
        <category label="Programming" term="Programming"/>
        <category label="Getting Started" term="Getting Started"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[The Problem]]></title>
        <id>https://fundamentalsofsoftwareengineering.tech/blog/the-problem</id>
        <link href="https://fundamentalsofsoftwareengineering.tech/blog/the-problem"/>
        <updated>2025-11-04T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[In the previous post, we saw that the answer to the question, "How do I become a programmer?" is not a simple one. And here is the reason why...]]></summary>
        <content type="html"><![CDATA[<p>In the previous post, we saw that the answer to the question, "How do I become a programmer?" is not a simple one. And here is the reason why...</p>
<p>To become a programmer, you need to know a lot of things about a lot of things.</p>
<p>But before you can know a lot of things, there are four questions that need answering first:</p>
<ol>
<li class="">Where do I start?</li>
<li class="">What do I learn?</li>
<li class="">When do I know enough?</li>
<li class="">Where do I go next?</li>
</ol>
<p><img decoding="async" loading="lazy" alt="dms" src="https://fundamentalsofsoftwareengineering.tech/assets/images/where-what-when-next.drawio-fead479ca2b324989f316a297808cf0f.png" width="1443" height="963" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="where-do-i-start">Where do I Start?<a href="https://fundamentalsofsoftwareengineering.tech/blog/the-problem#where-do-i-start" class="hash-link" aria-label="Direct link to Where do I Start?" title="Direct link to Where do I Start?" translate="no">​</a></h2>
<p>This is probably the most challenging question to figure out if you are a newbie.
At this stage you simply do not know enough to make an informed decision.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-do-i-learn">What do I Learn?<a href="https://fundamentalsofsoftwareengineering.tech/blog/the-problem#what-do-i-learn" class="hash-link" aria-label="Direct link to What do I Learn?" title="Direct link to What do I Learn?" translate="no">​</a></h2>
<p>Let's say you know where to start. Let's say you decided to start with the Java programming language. Java is vast!
What exactly do you learn? You can't learn everything there is about Java.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="when-do-i-know-enough">When do I Know Enough?<a href="https://fundamentalsofsoftwareengineering.tech/blog/the-problem#when-do-i-know-enough" class="hash-link" aria-label="Direct link to When do I Know Enough?" title="Direct link to When do I Know Enough?" translate="no">​</a></h2>
<p>Again, let's say you figure out what area of Java to focus on, when do you know enough of that specific area?</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="where-do-i-go-next">Where do I Go Next?<a href="https://fundamentalsofsoftwareengineering.tech/blog/the-problem#where-do-i-go-next" class="hash-link" aria-label="Direct link to Where do I Go Next?" title="Direct link to Where do I Go Next?" translate="no">​</a></h2>
<p>Once again, let's say you have figured out what and how much to learn, where do you go next?</p>
<p>These are the typical issues you will face when starting out.
The good news is that there is a solution to this problem, and we will look at that in the next post.</p>]]></content>
        <author>
            <name>Deon Slabbert</name>
        </author>
        <category label="Programming" term="Programming"/>
        <category label="Getting Started" term="Getting Started"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[The Goal]]></title>
        <id>https://fundamentalsofsoftwareengineering.tech/blog/the-goal</id>
        <link href="https://fundamentalsofsoftwareengineering.tech/blog/the-goal"/>
        <updated>2025-11-03T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[The goal of this post is to look at the question, "How do I become a programmer?"]]></summary>
        <content type="html"><![CDATA[<p>The goal of this post is to look at the question, "How do I become a programmer?"</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-do-i-become-a-programmer">How do I Become a Programmer?<a href="https://fundamentalsofsoftwareengineering.tech/blog/the-goal#how-do-i-become-a-programmer" class="hash-link" aria-label="Direct link to How do I Become a Programmer?" title="Direct link to How do I Become a Programmer?" translate="no">​</a></h2>
<p>This is a loaded question! Unfortunately, an online search may give you something like the following suggestion:</p>
<ul>
<li class="">Pick a programming language</li>
<li class="">Do some courses covering that language</li>
<li class="">Write some small apps</li>
<li class="">Apply for a programming job</li>
</ul>
<p>While this is not necessarily wrong advice, it is so full of gaps that it is practically useless.</p>
<p>The above suggestion raises a number of questions. For example:</p>
<ul>
<li class="">What programming language should I pick?</li>
<li class="">Why that particular language?</li>
<li class="">What courses should I take?</li>
<li class="">Why those courses?</li>
<li class="">What type of apps should I write?</li>
<li class="">Why those types of apps?</li>
<li class="">When am I ready to apply for a job?</li>
</ul>
<p>When starting out, you unfortunately don’t have the knowledge to answer any of these questions.
Hench this website where you will find a proper answer to the question, "How do I become a programmer?"</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="from-zero-to-software-developer">From Zero to Software Developer<a href="https://fundamentalsofsoftwareengineering.tech/blog/the-goal#from-zero-to-software-developer" class="hash-link" aria-label="Direct link to From Zero to Software Developer" title="Direct link to From Zero to Software Developer" translate="no">​</a></h2>
<p>We will start out assuming that you know nothing about programming.
We will take things one step at a time.</p>
<p>Your first transition will be from Zero to Coder, then from Coder to Programmer, and finally from Programmer to Software Developer.</p>
<p>It is sort of obvious from this statement that a Software Developer knows more than a Programmer, who in return knows more than a Coder, who in return knows more than Abraham Lincoln about programming.</p>
<p>Now these transitions are really just a matter of scope rather than depth.
There are so many skills that you need to develop that we cannot go into them too deeply.
Also, it is counter-productive to go too deep into the topics we’re going to focus on.
For example, you don’t need to know everything about Microsoft Word to write a resignation letter.
You need to know only the very basics.</p>
<p>There was a lady working for one of my clients who used Microsoft Word for years without knowing how to save the documents.
She simply printed each letter and stored it in a filing cabinet.
Sometimes we can get quite far with limited knowledge, on the condition that it is the right knowledge at the right time.</p>
<p>However, the important reason we are not going into things too deep is threefold:</p>
<ul>
<li class="">As you are going to learn a lot of new things, I want to prevent information overload.</li>
<li class="">YAGNI is short for "You ain’t going to need it!" So, we don't want to spend time learning things that are not needed at that particular point in time.</li>
<li class="">Similarly, learning unnecessary things will just slow us down.</li>
</ul>
<p>So, instead of becoming a master in one particular skill, you will rather develop a broad set of skills, knowing just enough per skill for that particular point in time.
We will, however, revisit each skill and expand on it when needed.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="disclaimer">Disclaimer<a href="https://fundamentalsofsoftwareengineering.tech/blog/the-goal#disclaimer" class="hash-link" aria-label="Direct link to Disclaimer" title="Direct link to Disclaimer" translate="no">​</a></h2>
<p>I guess a disclaimer is in order here. I am a Fullstack Software Developer, and my forte is designing and building Business Information Systems.
This is what I can help you become.
Fullstack just means that I am capable of building the whole application, from the User Interface (aka the Frontend) all the way to the Business Logic and Database (aka the Backend).</p>
<p>I cannot teach you how to build computer games or operating systems or compilers, for example.
Also, my native mobile app and Internet of Things (IoT) skills are limited as that’s not where my focus is.
That said, I am sure you will find resources online should you desire to focus on those areas instead.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="business-information-systems">Business Information Systems<a href="https://fundamentalsofsoftwareengineering.tech/blog/the-goal#business-information-systems" class="hash-link" aria-label="Direct link to Business Information Systems" title="Direct link to Business Information Systems" translate="no">​</a></h2>
<p>Business Information Systems are applications that support the operations of businesses by recoding daily routine transactions, such as sales, for example. You will find these in most businesses. Examples are Point of Sale applications, Banking applications, Insurance applications, e-commerce applications, HR systems, ERP systems, etc...</p>
<p>Please note the interchangeable use of the terms Application and System.
Let’s briefly look at these applications/systems in a more academic way.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="information-systems">Information Systems<a href="https://fundamentalsofsoftwareengineering.tech/blog/the-goal#information-systems" class="hash-link" aria-label="Direct link to Information Systems" title="Direct link to Information Systems" translate="no">​</a></h2>
<p>Business Information Systems fall under a category called Information Systems. Let’s briefly look at them by grouping them in two categories, Online Transaction Processing (OLTP) and Online Analytical Processing (OLAP) systems:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="online-transaction-processing-oltp">Online Transaction Processing (OLTP)<a href="https://fundamentalsofsoftwareengineering.tech/blog/the-goal#online-transaction-processing-oltp" class="hash-link" aria-label="Direct link to Online Transaction Processing (OLTP)" title="Direct link to Online Transaction Processing (OLTP)" translate="no">​</a></h3>
<p>These systems are transaction-oriented and are used to record the daily transactions of a business. These transactions can be financial or non-financial of nature. These Transaction Processing Systems are very detail-oriented and are the entry point of a business’s data. They usually consist of various data capture screens. Although they capture all the business data, they are typically non-analytical in nature. Thus, reports generated by these systems tend to be detailed as they are generated with transaction-level data. These applications also regularly interact with third-party applications such as sending text messages, email, or communicating with banking systems to name a few.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="online-analytical-processing-olap">Online Analytical Processing (OLAP)<a href="https://fundamentalsofsoftwareengineering.tech/blog/the-goal#online-analytical-processing-olap" class="hash-link" aria-label="Direct link to Online Analytical Processing (OLAP)" title="Direct link to Online Analytical Processing (OLAP)" translate="no">​</a></h3>
<p>These applications take the data generated by the Transaction Processing Systems (TPS) mentioned above and are used for decision-making. These are called Management Information Systems (MIS). Management Information Systems are in turn broken into more types such as Decision Support Systems (DSS) and Executive Support Systems (ESS).</p>
<p>Please feel free to read more about these online as we will focus on Transaction Processing Systems (TPS).</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusion">Conclusion<a href="https://fundamentalsofsoftwareengineering.tech/blog/the-goal#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion" translate="no">​</a></h2>
<p>The above information should give you an idea of where the focus of this website will be. You will encounter Business Information Systems in your daily life with every business you deal with, so I believe it to be a good skill set to have when becoming a programmer.</p>
<p>Unfortunately, seeing that we’re just starting out, we’re facing a number of problems.
We will discuss this in the next post.</p>]]></content>
        <author>
            <name>Deon Slabbert</name>
        </author>
        <category label="Programming" term="Programming"/>
        <category label="Getting Started" term="Getting Started"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[The Teacher]]></title>
        <id>https://fundamentalsofsoftwareengineering.tech/blog/the-teacher</id>
        <link href="https://fundamentalsofsoftwareengineering.tech/blog/the-teacher"/>
        <updated>2025-11-02T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[I started my professional career as a pharmacist.]]></summary>
        <content type="html"><![CDATA[<p>I started my professional career as a pharmacist.
I left university with a B Pharm degree and a BSc (Hons) degree in Pharmacology.</p>
<p><img decoding="async" loading="lazy" alt="dms" src="https://fundamentalsofsoftwareengineering.tech/assets/images/dms-1e44460f0e3953ef45f848e089817fb0.jpg" width="300" height="300" class="img_ev3q"></p>
<p>This extra degree came in handy when I did my 2-year compulsory military service from 1988 to 1989.
This placed me in the privileged position to help set up a <a href="https://en.wikipedia.org/wiki/Therapeutic_drug_monitoring" target="_blank" rel="noopener noreferrer" class="">Therapeutic Drug Monitoring</a> (TDM for short) clinic at an academic military hospital.</p>
<p>Certain drugs have narrow therapeutic indexes. With these drugs, it is important to individualize dosages so they work as effectively as possible. This also means that just a little higher dosage may be toxic and just a little lower dosage may be subtherapeutic.</p>
<p>To calculate these exact dosage per patient, one uses mathematical modeling, taking various parameters into account.
That meant that we really hit the calculators a lot.
And working with manual calculators, also introduced the possibility of errors, which we obviously had to avoid at all cost.</p>
<p>The decision was made to develop a software application that will do the calculations for us and also store the information for future retrieval.
As I was working closely with the programmer, I decided, "I like this! I also want to program."</p>
<p>A friend from university introduced me to the dBase programming language using the <a href="https://en.wikipedia.org/wiki/Clipper_(programming_language)" target="_blank" rel="noopener noreferrer" class="">Clipper</a> compiler, and so my new career started.
By the way, this was before there was a thing called the Internet, and Microsoft Windows also did not exist.
It was <a href="https://en.wikipedia.org/wiki/MS-DOS" target="_blank" rel="noopener noreferrer" class="">MS DOS</a> all the way!</p>
<p>After my military service, I managed a hospital pharmacy and built a Stock Order and Management System that reduced our stock levels from 7 months to 28 days.
As a result, we won the Pharmacy of the Year award out of 49 private hospital pharmacies.
I guess that was when I realized that I could make a career out of programming.</p>
<p>Because of this award thing, I was headhunted by a private hospital group and joined then in January 1995.
Also, in January 1995, I got my first client, an Underwriting Management Agency (UMA for short).
A UMA is a business that does all the work, such as policy underwriting, premium collection, claims handling, and claims payments on behalf of the insurer.</p>
<p>The hospital group bought a Managed Healthcare business in desperate need of a new software application.
I jumped in and in 4 days, I wrote them a temporary application with Microsoft Access.
I wrote the proper application for them over the next year with the <a href="https://en.wikipedia.org/wiki/Delphi_(software)" target="_blank" rel="noopener noreferrer" class="">Delphi</a> IDE, (short for Integrated Development Environment), which is using the Object Pascal programming language.
By that time we Microsoft Windows 95 just launched.</p>
<p>For the UMI, I built their first applications also with Delphi.</p>
<p><a href="https://en.wikipedia.org/wiki/Java_(programming_language)" target="_blank" rel="noopener noreferrer" class="">Java</a> was introduced in 1995. So I started to build some applications for the UMA with Java.</p>
<p>In 2000, Microsoft released the <a href="https://en.wikipedia.org/wiki/C_Sharp_(programming_language)" target="_blank" rel="noopener noreferrer" class="">C#</a> programming language.
I remember when I started to work with C#, I one day said to a colleague, "Look, they fixed Java!"
That said, Java was eventually fixed, and I love working with both Java and C#.</p>
<p>In 1996, I found two new clients. The one client was a dentist that worked for a major private medical scheme.
It was an interesting application as it was, among other things, checking how many times the same tooth has been pulled.
I am not even kidding here. Some dentists would charge the medical schemes multiple times for the same patient and the same tooth.</p>
<p>The second client was the national branch of an international emergency services company.
These guys needed better software to track all the roadside assistance they provided, and again, Delphi to the rescue.
Then one day, about two years in, they fired me.
Apparently the international company decided to standardize their system across countries.</p>
<p>Eventually, the work I did for the UMA became a full-time job.
Thirty years later, I am still building all their applications for them</p>
<p>I am telling you all this to show that I have learned a thing or two in the process.</p>
<p>The two most important things I have learned are:</p>
<ul>
<li class="">to keep things simple</li>
<li class="">to keep things practical</li>
</ul>
<p>These two things, simple and practical, are close relatives.
Please note that <em>simple</em> does not necessarily mean <em>easy</em>.
On the contrary, sometimes it takes effort to find simple solutions.</p>
<p>So, during these tutorials, we will keep things both simple and practical so you can be prepared for the real-world scenarios out there.</p>
<p>Hopefully, I can help you become a programmer in the shortest time possible.
That said, there are <strong>no shortcuts</strong>, only <strong>smart cuts</strong>!</p>
<p>You will still have to put in the hours.
It literally took me years to learn this stuff.
But it is an awesome ride!</p>]]></content>
        <author>
            <name>Deon Slabbert</name>
        </author>
        <category label="General" term="General"/>
        <category label="Getting Started" term="Getting Started"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Welcome]]></title>
        <id>https://fundamentalsofsoftwareengineering.tech/blog/welcome</id>
        <link href="https://fundamentalsofsoftwareengineering.tech/blog/welcome"/>
        <updated>2025-11-01T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Welcome to my Becoming a Programmer website.]]></summary>
        <content type="html"><![CDATA[<p>Welcome to my <strong>Becoming a Programmer</strong> website.</p>
<p>My name is Deon Slabbert, and I am a <strong>Fullstack Software Developer</strong>.</p>
<p>I have been a full-time, Fullstack software developer now for the last 38+ years,
and I hope to teach you how to become a Fullstack software developer as well.</p>
<p>I build Line-of-Business applications, also known as Enterprise applications,
and as such, my focus will be on these types of applications.
I will most probably call them Business Information Systems as I find that to be a good descriptive term for these types of applications.</p>
<p>So what exactly is a Fullstack software developer?</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="fullstack-software-developer-defined">Fullstack Software Developer Defined<a href="https://fundamentalsofsoftwareengineering.tech/blog/welcome#fullstack-software-developer-defined" class="hash-link" aria-label="Direct link to Fullstack Software Developer Defined" title="Direct link to Fullstack Software Developer Defined" translate="no">​</a></h2>
<p>Business Information Systems typically consist of three layers,
the <strong>User Interface Layer</strong>, the <strong>Business Logic Layer</strong>, and the <strong>Persistence Layer</strong>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="user-interface-layer">User Interface Layer<a href="https://fundamentalsofsoftwareengineering.tech/blog/welcome#user-interface-layer" class="hash-link" aria-label="Direct link to User Interface Layer" title="Direct link to User Interface Layer" translate="no">​</a></h3>
<p>The User Interface Layer is typically the part of the application the user interacts with.
If you decide to buy something online, you will use the Amazon website, for example.
Everything on that website you see and interact with,
like typing search criteria or clicking buttons, is called the User Interface.</p>
<p>Now, for most users, the User Interface is the application,
as they don't know or care what happens behind the scenes when they click a button.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="business-logic-layer">Business Logic Layer<a href="https://fundamentalsofsoftwareengineering.tech/blog/welcome#business-logic-layer" class="hash-link" aria-label="Direct link to Business Logic Layer" title="Direct link to Business Logic Layer" translate="no">​</a></h3>
<p>Then there is the Business Logic Layer which is not visible to the user.
This is the behind the scenes part of the app where the number crunching takes place.
The better name for the number crunching is Business Logic.
In our Amazon example, this is where the shopping cart is filled with items and order totals are calculated.
Now, it is important that this shopping cart with its items is not getting lost once the user closes the browser.
Say hello to the database!</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="persistence-layer">Persistence Layer<a href="https://fundamentalsofsoftwareengineering.tech/blog/welcome#persistence-layer" class="hash-link" aria-label="Direct link to Persistence Layer" title="Direct link to Persistence Layer" translate="no">​</a></h3>
<p>The Database Layer or Persistence Layer represents the section where all transaction data is stored for future retrieval and manipulation.
This is also the most important section of the Business Information System because this section represents the so-called source-of-truth of the business.
Without the data, there is no business.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="skills-required">Skills Required<a href="https://fundamentalsofsoftwareengineering.tech/blog/welcome#skills-required" class="hash-link" aria-label="Direct link to Skills Required" title="Direct link to Skills Required" translate="no">​</a></h2>
<p>For each of these Business Information System layers, you need different skill sets.
So, starting with the Persistence Layer, then the Business Logic Layer,
and finally the User Interface Layer, I teach you everything you need to know for each of these layers.</p>
<p>I start from the assumption that you have never written a single line of code before.
From there we keep moving forwards, one step at a time.
We keep linking new information to existing knowledge, which will speed up the learning process substantially.
I call that associative learning.</p>
<p>Now I know that this is an ambitious goal,
but I will do my very best to keep adding to the existing content in an orderly fashion.</p>
<p>Let's now see how this website is organized.
You will see that there are two sections, namely Courses and Blog.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-blog-section">The Blog Section<a href="https://fundamentalsofsoftwareengineering.tech/blog/welcome#the-blog-section" class="hash-link" aria-label="Direct link to The Blog Section" title="Direct link to The Blog Section" translate="no">​</a></h2>
<p>In the Blog section, you will find general information and code snippets.
The code snippets will be mainly in Java, C#, SQL, HTML, CSS &amp; JavaScript.
These code snippets are sample code that I find useful in my day-to-day job, and I use it as a quick reference.
But because I often use it, It may be of help to you too.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-courses-section">The Courses Section<a href="https://fundamentalsofsoftwareengineering.tech/blog/welcome#the-courses-section" class="hash-link" aria-label="Direct link to The Courses Section" title="Direct link to The Courses Section" translate="no">​</a></h2>
<p>This is the main body of knowledge.
Here you will find everything you need to know to become a <strong>Fullstack Software Developer</strong> one step at a time.
The layout is designed to help you not skip a single step.
You start at the very top and work your way down.</p>
<p>Finally, why should you listen to me?
I will discuss that in the next post.</p>]]></content>
        <author>
            <name>Deon Slabbert</name>
        </author>
        <category label="General" term="General"/>
        <category label="Getting Started" term="Getting Started"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Retrieving Values From Spring Properties File]]></title>
        <id>https://fundamentalsofsoftwareengineering.tech/blog/spring-boot-properties</id>
        <link href="https://fundamentalsofsoftwareengineering.tech/blog/spring-boot-properties"/>
        <updated>2024-01-03T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[How to retrieve values from the application.properties file using the Spring Boot framework.]]></summary>
        <content type="html"><![CDATA[<p>How to retrieve values from the application.properties file using the Spring Boot framework.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-applicationproperties-file">The application.properties File<a href="https://fundamentalsofsoftwareengineering.tech/blog/spring-boot-properties#the-applicationproperties-file" class="hash-link" aria-label="Direct link to The application.properties File" title="Direct link to The application.properties File" translate="no">​</a></h2>
<div class="language-txt codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-txt codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">mode=development</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-java-file">The Java File<a href="https://fundamentalsofsoftwareengineering.tech/blog/spring-boot-properties#the-java-file" class="hash-link" aria-label="Direct link to The Java File" title="Direct link to The Java File" translate="no">​</a></h2>
<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv codeBlockLinesWithNumbering_o6Pm" style="counter-reset:line-count 0"><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token annotation punctuation" style="color:#393A34">@Value</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">value </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"${mode}"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"></span><span class="token keyword" style="color:#00009f">private</span><span class="token plain"> </span><span class="token class-name">String</span><span class="token plain"> mode</span><span class="token punctuation" style="color:#393A34">;</span></span><br></div></code></pre></div></div>]]></content>
        <author>
            <name>Deon Slabbert</name>
        </author>
        <category label="Code Snippets" term="Code Snippets"/>
        <category label="Java" term="Java"/>
        <category label="Spring Boot" term="Spring Boot"/>
        <category label="Spring Framework" term="Spring Framework"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Reading & Writing Text Files in Java]]></title>
        <id>https://fundamentalsofsoftwareengineering.tech/blog/java-text-file-io</id>
        <link href="https://fundamentalsofsoftwareengineering.tech/blog/java-text-file-io"/>
        <updated>2024-01-02T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[The following code snippets demonstrate how to read and write text files in Java.]]></summary>
        <content type="html"><![CDATA[<p>The following code snippets demonstrate how to read and write text files in Java.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="reading-from-text-file">Reading from Text File<a href="https://fundamentalsofsoftwareengineering.tech/blog/java-text-file-io#reading-from-text-file" class="hash-link" aria-label="Direct link to Reading from Text File" title="Direct link to Reading from Text File" translate="no">​</a></h2>
<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv codeBlockLinesWithNumbering_o6Pm" style="counter-reset:line-count 0"><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token keyword" style="color:#00009f">var</span><span class="token plain"> fileName </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token class-name">Path</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">of</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"myfile.txt"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"></span><span class="token keyword" style="color:#00009f">var</span><span class="token plain"> content </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token class-name">Files</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">readString</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">fileName</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span></span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="writing-to-text-file">Writing to Text File<a href="https://fundamentalsofsoftwareengineering.tech/blog/java-text-file-io#writing-to-text-file" class="hash-link" aria-label="Direct link to Writing to Text File" title="Direct link to Writing to Text File" translate="no">​</a></h2>
<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv codeBlockLinesWithNumbering_o6Pm" style="counter-reset:line-count 0"><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token keyword" style="color:#00009f">var</span><span class="token plain"> fileName </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token class-name">Path</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">of</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"myfile.txt"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"></span><span class="token keyword" style="color:#00009f">var</span><span class="token plain"> content  </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"this is a test"</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"></span><span class="token class-name">Files</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">writeString</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">fileName</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> content</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span></span><br></div></code></pre></div></div>]]></content>
        <author>
            <name>Deon Slabbert</name>
        </author>
        <category label="Code Snippets" term="Code Snippets"/>
        <category label="Java" term="Java"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[JdbcTemplate]]></title>
        <id>https://fundamentalsofsoftwareengineering.tech/blog/jdbc-template</id>
        <link href="https://fundamentalsofsoftwareengineering.tech/blog/jdbc-template"/>
        <updated>2024-01-01T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Please note, the content of this post has been copied and modified from the Spring website.]]></summary>
        <content type="html"><![CDATA[<p>Please note, the content of this post has been copied and modified from the <a href="https://docs.spring.io/spring-framework/reference/data-access/jdbc/core.html#jdbc-JdbcTemplate" target="_blank" rel="noopener noreferrer" class="">Spring</a> website.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="select">SELECT<a href="https://fundamentalsofsoftwareengineering.tech/blog/jdbc-template#select" class="hash-link" aria-label="Direct link to SELECT" title="Direct link to SELECT" translate="no">​</a></h2>
<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv codeBlockLinesWithNumbering_o6Pm" style="counter-reset:line-count 0"><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">int</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">test</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">var</span><span class="token plain"> sql </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"select count(*) from product"</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">this</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">jdbcTemplate</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">queryForObject</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">sql</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token class-name">Integer</span><span class="token punctuation" style="color:#393A34">.</span><span class="token keyword" style="color:#00009f">class</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span></span><br></div></code></pre></div></div>
<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv codeBlockLinesWithNumbering_o6Pm" style="counter-reset:line-count 0"><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">int</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">test</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">var</span><span class="token plain"> sql </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"select count(*) from product where name = ?"</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">this</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">jdbcTemplate</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">queryForObject</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">sql</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token class-name">Integer</span><span class="token punctuation" style="color:#393A34">.</span><span class="token keyword" style="color:#00009f">class</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Joe"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span></span><br></div></code></pre></div></div>
<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv codeBlockLinesWithNumbering_o6Pm" style="counter-reset:line-count 0"><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token class-name">String</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">test</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    </span><span class="token class-name">String</span><span class="token plain"> sql </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"select name from product where id = ?"</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">this</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">jdbcTemplate</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">queryForObject</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">sql</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token class-name">String</span><span class="token punctuation" style="color:#393A34">.</span><span class="token keyword" style="color:#00009f">class</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1212L</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span></span><br></div></code></pre></div></div>
<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv codeBlockLinesWithNumbering_o6Pm" style="counter-reset:line-count 0"><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token class-name">MyProduct</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">test</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">var</span><span class="token plain"> sql </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"select id, name from product where id = ?"</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> jdbcTemplate</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">queryForObject</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">sql</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">resultSet</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> rowNum</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">-&gt;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">            </span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token class-name">MyProduct</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">                    resultSet</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">getInt</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"id"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">                    resultSet</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">getString</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"name"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">            </span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">123</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span></span><br></div></code></pre></div></div>
<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv codeBlockLinesWithNumbering_o6Pm" style="counter-reset:line-count 0"><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token class-name">List</span><span class="token generics punctuation" style="color:#393A34">&lt;</span><span class="token generics class-name">MyProduct</span><span class="token generics punctuation" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">test</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">var</span><span class="token plain"> sql </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"select id, name from product"</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> jdbcTemplate</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">query</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">sql</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">resultSet</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> rowNum</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">-&gt;</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token class-name">MyProduct</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">            resultSet</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">getInt</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"id"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">            resultSet</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">getString</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"name"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span></span><br></div></code></pre></div></div>
<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv codeBlockLinesWithNumbering_o6Pm" style="counter-reset:line-count 0"><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token keyword" style="color:#00009f">private</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">final</span><span class="token plain"> </span><span class="token class-name">RowMapper</span><span class="token generics punctuation" style="color:#393A34">&lt;</span><span class="token generics class-name">Actor</span><span class="token generics punctuation" style="color:#393A34">&gt;</span><span class="token plain"> actorRowMapper </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">resultSet</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> rowNum</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">-&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    </span><span class="token class-name">Actor</span><span class="token plain"> actor </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">new</span><span class="token plain"> </span><span class="token class-name">Actor</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    actor</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">setFirstName</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">resultSet</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">getString</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"first_name"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    actor</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">setLastName</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">resultSet</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">getString</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"last_name"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> actor</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain" style="display:inline-block"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"></span><span class="token keyword" style="color:#00009f">public</span><span class="token plain"> </span><span class="token class-name">List</span><span class="token generics punctuation" style="color:#393A34">&lt;</span><span class="token generics class-name">Actor</span><span class="token generics punctuation" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">findAllActors</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">var</span><span class="token plain"> sql </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"select first_name, last_name from t_actor"</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">this</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">jdbcTemplate</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">query</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">sql</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> actorRowMapper</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span></span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="insert">INSERT<a href="https://fundamentalsofsoftwareengineering.tech/blog/jdbc-template#insert" class="hash-link" aria-label="Direct link to INSERT" title="Direct link to INSERT" translate="no">​</a></h2>
<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv codeBlockLinesWithNumbering_o6Pm" style="counter-reset:line-count 0"><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token keyword" style="color:#00009f">this</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">jdbcTemplate</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">update</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    </span><span class="token string" style="color:#e3116c">"insert into t_actor (first_name, last_name) values (?, ?)"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    </span><span class="token string" style="color:#e3116c">"Leonor"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Watling"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span></span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="update">UPDATE<a href="https://fundamentalsofsoftwareengineering.tech/blog/jdbc-template#update" class="hash-link" aria-label="Direct link to UPDATE" title="Direct link to UPDATE" translate="no">​</a></h2>
<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv codeBlockLinesWithNumbering_o6Pm" style="counter-reset:line-count 0"><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token keyword" style="color:#00009f">this</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">jdbcTemplate</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">update</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    </span><span class="token string" style="color:#e3116c">"update t_actor set last_name = ? where id = ?"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    </span><span class="token string" style="color:#e3116c">"Banjo"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">5276L</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span></span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="delete">DELETE<a href="https://fundamentalsofsoftwareengineering.tech/blog/jdbc-template#delete" class="hash-link" aria-label="Direct link to DELETE" title="Direct link to DELETE" translate="no">​</a></h2>
<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv codeBlockLinesWithNumbering_o6Pm" style="counter-reset:line-count 0"><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token keyword" style="color:#00009f">this</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">jdbcTemplate</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">update</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    </span><span class="token string" style="color:#e3116c">"delete from t_actor where id = ?"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain">    </span><span class="token class-name">Long</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">valueOf</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">actorId</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span></span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="other">OTHER<a href="https://fundamentalsofsoftwareengineering.tech/blog/jdbc-template#other" class="hash-link" aria-label="Direct link to OTHER" title="Direct link to OTHER" translate="no">​</a></h2>
<div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv codeBlockLinesWithNumbering_o6Pm" style="counter-reset:line-count 0"><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token keyword" style="color:#00009f">var</span><span class="token plain"> sql </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"create table mytable (id integer, name varchar(100))"</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"></span><span class="token keyword" style="color:#00009f">this</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">jdbcTemplate</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">execute</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">sql</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span></span><br></div></code></pre></div></div>]]></content>
        <author>
            <name>Deon Slabbert</name>
        </author>
        <category label="Code Snippets" term="Code Snippets"/>
        <category label="Java" term="Java"/>
        <category label="JDBC" term="JDBC"/>
        <category label="Spring Framework" term="Spring Framework"/>
    </entry>
</feed>