Using Database Endpoint to fire queries on Database

Mule 4 Indepth Database Endpoint -Object Stores- Mule Domains
12 minutes
Share the link to this page
Copied
  Completed
You need to have access to the item to view this lesson.
One-time Fee
$69.99
List Price:  $99.99
You save:  $30
€67.35
List Price:  €96.21
You save:  €28.86
£55.83
List Price:  £79.77
You save:  £23.93
CA$100.76
List Price:  CA$143.95
You save:  CA$43.19
A$112.23
List Price:  A$160.33
You save:  A$48.10
S$95.14
List Price:  S$135.93
You save:  S$40.78
HK$543.62
List Price:  HK$776.63
You save:  HK$233.01
CHF 63.04
List Price:  CHF 90.06
You save:  CHF 27.02
NOK kr797.48
List Price:  NOK kr1,139.30
You save:  NOK kr341.82
DKK kr502.49
List Price:  DKK kr717.87
You save:  DKK kr215.38
NZ$124.10
List Price:  NZ$177.29
You save:  NZ$53.19
د.إ257.07
List Price:  د.إ367.26
You save:  د.إ110.18
৳8,361.55
List Price:  ৳11,945.58
You save:  ৳3,584.03
₹5,962.79
List Price:  ₹8,518.63
You save:  ₹2,555.84
RM314.04
List Price:  RM448.65
You save:  RM134.61
₦108,335.42
List Price:  ₦154,771.52
You save:  ₦46,436.10
₨19,495.71
List Price:  ₨27,852.21
You save:  ₨8,356.49
฿2,390.81
List Price:  ฿3,415.60
You save:  ฿1,024.78
₺2,467.44
List Price:  ₺3,525.07
You save:  ₺1,057.62
B$434.14
List Price:  B$620.23
You save:  B$186.09
R1,296.68
List Price:  R1,852.48
You save:  R555.80
Лв131.68
List Price:  Лв188.12
You save:  Лв56.44
₩102,198.93
List Price:  ₩146,004.73
You save:  ₩43,805.79
₪256.56
List Price:  ₪366.53
You save:  ₪109.97
₱4,090.81
List Price:  ₱5,844.26
You save:  ₱1,753.45
¥10,994.99
List Price:  ¥15,707.80
You save:  ¥4,712.81
MX$1,408.98
List Price:  MX$2,012.91
You save:  MX$603.93
QR255.09
List Price:  QR364.43
You save:  QR109.34
P967.82
List Price:  P1,382.66
You save:  P414.84
KSh9,046.20
List Price:  KSh12,923.70
You save:  KSh3,877.50
E£3,562.49
List Price:  E£5,089.49
You save:  E£1,527
ብር8,907.19
List Price:  ብር12,725.10
You save:  ብር3,817.91
Kz63,830.88
List Price:  Kz91,190.88
You save:  Kz27,360
CLP$69,323.69
List Price:  CLP$99,038.09
You save:  CLP$29,714.40
CN¥510.80
List Price:  CN¥729.75
You save:  CN¥218.94
RD$4,245.36
List Price:  RD$6,065.06
You save:  RD$1,819.70
DA9,465.07
List Price:  DA13,522.10
You save:  DA4,057.03
FJ$162.39
List Price:  FJ$232
You save:  FJ$69.60
Q539.11
List Price:  Q770.19
You save:  Q231.08
GY$14,638.77
List Price:  GY$20,913.42
You save:  GY$6,274.65
ISK kr9,772.70
List Price:  ISK kr13,961.60
You save:  ISK kr4,188.90
DH703.98
List Price:  DH1,005.73
You save:  DH301.75
L1,291.33
List Price:  L1,844.84
You save:  L553.50
ден4,143.97
List Price:  ден5,920.21
You save:  ден1,776.24
MOP$559.97
List Price:  MOP$800
You save:  MOP$240.02
N$1,289.45
List Price:  N$1,842.15
You save:  N$552.70
C$2,574.80
List Price:  C$3,678.44
You save:  C$1,103.64
रु9,534.71
List Price:  रु13,621.60
You save:  रु4,086.89
S/260.99
List Price:  S/372.86
You save:  S/111.86
K283.85
List Price:  K405.52
You save:  K121.66
SAR262.91
List Price:  SAR375.60
You save:  SAR112.69
ZK1,936.45
List Price:  ZK2,766.47
You save:  ZK830.02
L335.12
List Price:  L478.77
You save:  L143.64
Kč1,694.03
List Price:  Kč2,420.15
You save:  Kč726.12
Ft27,771.44
List Price:  Ft39,675.18
You save:  Ft11,903.74
SEK kr774.38
List Price:  SEK kr1,106.30
You save:  SEK kr331.92
ARS$71,792.58
List Price:  ARS$102,565.23
You save:  ARS$30,772.64
Bs484.55
List Price:  Bs692.24
You save:  Bs207.69
COP$307,165.41
List Price:  COP$438,826.54
You save:  COP$131,661.12
₡35,530.54
List Price:  ₡50,760.09
You save:  ₡15,229.55
L1,777.33
List Price:  L2,539.15
You save:  L761.82
₲546,250
List Price:  ₲780,390.60
You save:  ₲234,140.59
$U3,115.91
List Price:  $U4,451.49
You save:  $U1,335.58
zł287.82
List Price:  zł411.19
You save:  zł123.37
Already have an account? Log In

Transcript

Welcome back. In this video, we'll understand about database endpoint. We'll see how to configure database connector and how to configure database select operation and fire dynamic and parameterised queries. Let's get started. So I'll be working on this project database endpoint start project okay. So before I get started actually there is SQL given to you called as mule training DB dot SQL in the lab documentations.

If I open this here, this is creating a database called as mule training DB and creating a table called as product and then inserting some products inside it. So before we start off, I want to execute this dot SQL file. Okay, so I have my secret workbench install on my mission, I'm opening this MySQL Workbench I'm having MySQL eight version. Okay, let me connect to my SQL Server. Yep. It's opening.

So, is there a database already for me with nimble train DB s tables, if I see product table I can see six products actually have already executed the given mule training.db here and I can see this table got created under six products. Now what I want to do is I want to find a query on this table using database endpoint. So let us actually there is no database module added I have to click on Add modules and they have to add the data Every module to the left side. So, database module got added. And in database a lot of operations which we can do, select, I will do, I'll just drag and drop select. Firstly, what I want to do is I want to drag and drop HTTP listener.

Okay. So I'll configure this listener as usual. at Port 8081. I'll take all the defaults. Okay. pod as slash product Okay, now, when when a request comes to slash products, I want to hit the database endpoint and for our select query, now I'll go to database operations and select it was in module and select select module, drag and drop.

Now I have to configure the Select operation of database module. Okay, here it is asking me to configure the database connector configuration. I will click on plus here and to configure the JDBC driver. Basically what type of connection I want. Since I'm using MySQL, I'll select my SQL connection. And here it is asking me to configure the driver.

I'll click on configure and select Add Maven dependency Okay, By default, actually, what I can do is search in Maven central just search for MySQL, colon MySQL. It'll search in the Maven central repository MySQL colon, I just say yep, I can see that there is my SQL called MySQL connector Java. I'll select it. Okay, so again, if I click on modify, modify Maven dependency here we can select, you can see that the dependency MySQL connector dependencies added as a finish. So basically, MySQL dependency is added as a Maven artifact. And the corresponding jar gets added here in the project Now I'll how to configure what is the host at which my database is running.

I'll use the host as localhost. port is 3306 by default, username for my database is root and password also is root. And database to which I want to connect is mule training DB is a database and I'll click on Test Connection. If everything is correct, I can give them success. This connection is successful. Oh, okay.

Okay. No, I need to tell what is the query to fire What is my table name? Actually? product is a table name. I won't select all products right now. Select star from product table.

Later I'll parameterize it. That's that is it right now, the output after select component will be list of rows is it. Basically what this select Query SELECT operation will do is after firing a query, calculating a lot of rows and columns, right? For each row, if you create one map, key to the map is column name and the value is a column value. So for one row, one map if there are 10 rows, list of 10 maps. So basically, after select operation, the payload will be a list of maps But I want it to be converted to JSON.

So what I will do is simply I'll go to my favorites and I will drag and drop transform message. And I will configure my transform message just output metadata as Jason and here are the expressions in player type, payload. Hey, this dash dash dash should not be remote v careful, payload and simply right. Okay. Now, let me run this and check. So it'll restart.

I'll pause the video and race and then start again. It got started. Let me give a request to localhost 881 slash products. Yeah localhost 881 slash products. I'll send it Yeah, next week, yep, see, I got all the products as a list of Jason is it? So now you understood how to fire a simple select query, which will retrieve all rows.

But I want to change my requirement. What I want is I'm expecting product name as a query parameter like this in the URL. Question mark, as a product name is equals to hp. So now I wanted to display only HP related products is it actually I want to query the products by brand name. Okay, so I will say product name is equals to hitch capital P actually according to my database. So what I'll do is I'll go here to select component double click and here at a modify my query Add their brand underscore name is equals to colon I'll say Benin is it that column name is it banners codename a brand underscore name correct.

Okay. So I gave the name is it. So I need to pass some input parameter collars beanie to map what I can do is see here, there is another tab for input parameters. If I if I click on this icon it will show me the graphical view. So this is a graphical view. So on the right side you can see the name.

I want to populate it from query parameter on the left side. I'll drag and drop query parameters to be name here. Yes, I'd code generator to the expression now I will say query params.id What is a query parameter I'm expecting? product name, insert. Okay, so I say product name. That's it.

So now I configured the value for B name by extracting extracting it from query parents. Okay done. And I will save this Oh, let me run I'll restart better. Okay. It was a video until it starts a bit got started. Now let me give a request for for Name is equals to HP I'll send a request.

Yep, I got a list of size only one. Only one HP product as a product name is equals to Apple. Yep, I got a list of products whose brand name is Apple. So I was able to successfully configure a select operation to fire a plain query as well as parameterised query and you know how to get value for this parameters. But the problem right now is you can see the XML in the XML there is a global element called as DB colon config you can see DB called config and here the user name and password is hard coded and your DB select operation is referencing to that connector configuration. I don't want to hard code my username and password like this it is not a good practice we It is good to externalize these values to external file.

Basically we prefer YAML files why ml files in mule we'll see how to actually externalize in my next video, before you complete this video, there is an exercise. What you can do is in the exercises there is 06 database endpoint document given to you please open that and complete the exercises. I'll see you in next video where I'll talk about externalizing the contractor ation of database See you in next video.

Sign Up

Share

Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.