Skip to content

Commit 1be44c4

Browse files
committed
Merge branch 'master' into move-jdbc-articles
2 parents cbe9008 + 5c0ed67 commit 1be44c4

File tree

17 files changed

+949
-13
lines changed

17 files changed

+949
-13
lines changed

core-java-modules/core-java-arrays-multidimensional/src/main/java/com/baeldung/array/MultiDimensionalArray.java

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,49 @@ int[][] declarationAndThenInitialization() {
1818
return multiDimensionalArray;
1919
}
2020

21+
int[][] declarationAndThenInitializationBaseOnIndex() {
22+
int[][] multiDimensionalArray = new int[3][];
23+
multiDimensionalArray[0] = new int[2];
24+
multiDimensionalArray[1] = new int[3];
25+
multiDimensionalArray[2] = new int[4];
26+
27+
multiDimensionalArray[0][0] = 1;
28+
multiDimensionalArray[0][1] = 2;
29+
30+
multiDimensionalArray[1][0] = 3;
31+
multiDimensionalArray[1][1] = 4;
32+
multiDimensionalArray[1][2] = 5;
33+
34+
multiDimensionalArray[2][0] = 6;
35+
multiDimensionalArray[2][1] = 7;
36+
multiDimensionalArray[2][2] = 8;
37+
multiDimensionalArray[2][3] = 9;
38+
39+
return multiDimensionalArray;
40+
}
41+
2142
int[][] declarationAndThenInitializationUsingUserInputs() {
2243
int[][] multiDimensionalArray = new int[3][];
2344
multiDimensionalArray[0] = new int[2];
2445
multiDimensionalArray[1] = new int[3];
2546
multiDimensionalArray[2] = new int[4];
47+
2648
initializeElements(multiDimensionalArray);
2749
return multiDimensionalArray;
2850
}
2951

52+
int[][] declarationAndThenInitializationFirstAlternative() {
53+
int[][] multiDimensionalArray = new int[][] { new int[] { 1, 2 }, new int[] { 3, 4, 5 }, new int[] { 6, 7, 8, 9 } };
54+
55+
return multiDimensionalArray;
56+
}
57+
58+
int[][] declarationAndThenInitializationSecondAlternative() {
59+
int[][] multiDimensionalArray = { new int[] { 1, 2 }, new int[] { 3, 4, 5 }, new int[] { 6, 7, 8, 9 } };
60+
61+
return multiDimensionalArray;
62+
}
63+
3064
void initializeElements(int[][] multiDimensionalArray) {
3165
Scanner sc = new Scanner(System.in);
3266
for (int outer = 0; outer < multiDimensionalArray.length; outer++) {
@@ -48,6 +82,15 @@ void printElements(int[][] multiDimensionalArray) {
4882
}
4983
}
5084

85+
void printElementsUsingNestedForLoop(int[][] multiDimensionalArray) {
86+
for (int i = 0; i < multiDimensionalArray.length; i++) {
87+
for (int j = 0; j < multiDimensionalArray[i].length; j++) {
88+
System.out.print(multiDimensionalArray[i][j] + " ");
89+
}
90+
System.out.println();
91+
}
92+
}
93+
5194
int[] getElementAtGivenIndex(int[][] multiDimensionalArray, int index) {
5295
return multiDimensionalArray[index];
5396
}
@@ -62,8 +105,8 @@ int[] findLengthOfElements(int[][] multiDimensionalArray) {
62105

63106
Integer[] findLengthOfElements(Integer[][] multiDimensionalArray) {
64107
return Arrays.stream(multiDimensionalArray)
65-
.map(array -> array.length)
66-
.toArray(Integer[]::new);
108+
.map(array -> array.length)
109+
.toArray(Integer[]::new);
67110
}
68111

69112
int[][] copy2DArray(int[][] arrayOfArrays) {
@@ -77,7 +120,7 @@ int[][] copy2DArray(int[][] arrayOfArrays) {
77120

78121
Integer[][] copy2DArray(Integer[][] arrayOfArrays) {
79122
return Arrays.stream(arrayOfArrays)
80-
.map(array -> Arrays.copyOf(array, array.length))
81-
.toArray(Integer[][]::new);
123+
.map(array -> Arrays.copyOf(array, array.length))
124+
.toArray(Integer[][]::new);
82125
}
83126
}

core-java-modules/core-java-arrays-multidimensional/src/test/java/com/baeldung/array/MultiDimensionalArrayUnitTest.java

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,21 @@ public void givenMultiDimensionalArray_whenUsingArraysAPI_thenVerifyPrintedEleme
4646
ByteArrayOutputStream outContent = new ByteArrayOutputStream();
4747
System.setOut(new PrintStream(outContent));
4848
obj.printElements(multiDimensionalArr);
49-
assertEquals("[1, 2][3, 4, 5][6, 7, 8, 9]", outContent.toString().replace("\r", "").replace("\n", ""));
49+
assertEquals("[1, 2][3, 4, 5][6, 7, 8, 9]", outContent.toString()
50+
.replace("\r", "")
51+
.replace("\n", ""));
52+
System.setOut(System.out);
53+
}
54+
55+
@Test
56+
public void givenMultiDimensionalArray_whenUsingNestedForLoopToPrint_thenVerifyPrintedElements() {
57+
int[][] multiDimensionalArr = { { 1, 2 }, { 3, 4, 5 }, { 6, 7, 8, 9 } };
58+
ByteArrayOutputStream outContent = new ByteArrayOutputStream();
59+
System.setOut(new PrintStream(outContent));
60+
obj.printElementsUsingNestedForLoop(multiDimensionalArr);
61+
assertEquals("1 2 3 4 5 6 7 8 9 ", outContent.toString()
62+
.replace("\r", "")
63+
.replace("\n", ""));
5064
System.setOut(System.out);
5165
}
5266

@@ -57,27 +71,27 @@ public void givenMultiDimensionalArray_whenUsingArraysFill_thenVerifyInitialize2
5771
multiDimensionalArr[1] = new int[3];
5872
multiDimensionalArr[2] = new int[4];
5973
obj.initialize2DArray(multiDimensionalArr);
60-
assertArrayEquals(new int[][] {{7,7}, {7,7,7}, {7,7,7,7}}, multiDimensionalArr);
74+
assertArrayEquals(new int[][] { { 7, 7 }, { 7, 7, 7 }, { 7, 7, 7, 7 } }, multiDimensionalArr);
6175
}
62-
76+
6377
@Test
6478
public void givenMultiDimensionalArray_whenUsingIteration_thenVerifyFindLengthOfElements() {
6579
int[][] multiDimensionalArr = { { 1, 2 }, { 3, 4, 5 }, { 6, 7, 8, 9 } };
66-
assertArrayEquals(new int[]{2,3,4}, obj.findLengthOfElements(multiDimensionalArr));
80+
assertArrayEquals(new int[] { 2, 3, 4 }, obj.findLengthOfElements(multiDimensionalArr));
6781
}
68-
82+
6983
@Test
7084
public void givenMultiDimensionalArray_whenUsingArraysStream_thenVerifyFindLengthOfElements() {
7185
Integer[][] multiDimensionalArr = { { 1, 2 }, { 3, 4, 5 }, { 6, 7, 8, 9 } };
72-
assertArrayEquals(new Integer[]{2,3,4}, obj.findLengthOfElements(multiDimensionalArr));
86+
assertArrayEquals(new Integer[] { 2, 3, 4 }, obj.findLengthOfElements(multiDimensionalArr));
7387
}
74-
88+
7589
@Test
7690
public void givenMultiDimensionalArray_whenUsingArraysCopyOf_thenVerifyCopy2DArray() {
7791
int[][] multiDimensionalArr = { { 1, 2 }, { 3, 4, 5 }, { 6, 7, 8, 9 } };
7892
assertArrayEquals(multiDimensionalArr, obj.copy2DArray(multiDimensionalArr));
7993
}
80-
94+
8195
@Test
8296
public void givenMultiDimensionalArray_whenUsingArraysStream_thenVerifyCopy2DArray() {
8397
Integer[][] multiDimensionalArr = { { 1, 2 }, { 3, 4, 5 }, { 6, 7, 8, 9 } };
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package baeldung.linkedlistarray;
1+
package com.baeldung.linkedlistarray;
22

33
import static org.junit.jupiter.api.Assertions.assertEquals;
44
import static org.junit.jupiter.api.Assertions.assertTrue;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.baeldung.h2functions;
2+
3+
import org.junit.jupiter.api.AfterEach;
4+
import org.junit.jupiter.api.BeforeEach;
5+
import org.junit.jupiter.api.Test;
6+
7+
import java.sql.*;
8+
9+
import static org.junit.jupiter.api.Assertions.assertEquals;
10+
11+
public class BuiltInFunctionUnitTest {
12+
private static Connection connection;
13+
14+
@BeforeEach
15+
public void setUp() throws Exception {
16+
connection = DriverManager.getConnection("jdbc:h2:mem:generated", "sa", "");
17+
}
18+
19+
@AfterEach
20+
public void tearDown() throws SQLException {
21+
connection.close();
22+
}
23+
24+
@Test
25+
void whenUsingUpper_thenParametersAreUppercased() throws SQLException{
26+
try (Statement statement = connection.createStatement()) {
27+
ResultSet rs = statement.executeQuery("SELECT UPPER('Hello')");
28+
29+
rs.next();
30+
String hello = rs.getString(1);
31+
assertEquals("HELLO", hello);
32+
}
33+
}
34+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package com.baeldung.h2functions;
2+
3+
import org.junit.jupiter.api.AfterEach;
4+
import org.junit.jupiter.api.BeforeEach;
5+
import org.junit.jupiter.api.Test;
6+
7+
import java.sql.*;
8+
9+
import static org.junit.jupiter.api.Assertions.assertEquals;
10+
import static org.junit.jupiter.api.Assertions.assertTrue;
11+
12+
public class CompiledFunctionUnitTest {
13+
private static Connection connection;
14+
15+
@BeforeEach
16+
public void setUp() throws Exception {
17+
connection = DriverManager.getConnection("jdbc:h2:mem:generated", "sa", "");
18+
}
19+
20+
@AfterEach
21+
public void tearDown() throws SQLException {
22+
connection.close();
23+
}
24+
25+
@Test
26+
void givenAUserDefinedFunctionAsClassReference_whenICallTheFunction_thenIGetTheResult() throws SQLException {
27+
try (Statement statement = connection.createStatement()) {
28+
statement.execute("""
29+
CREATE ALIAS JAVA_RANDOM FOR "java.lang.Math.random";
30+
""");
31+
}
32+
33+
try (PreparedStatement statement = connection.prepareStatement("SELECT JAVA_RANDOM()")) {
34+
ResultSet rs = statement.executeQuery();
35+
36+
rs.next();
37+
double rnd = rs.getDouble(1);
38+
assertTrue(rnd >= 0);
39+
assertTrue(rnd <= 1);
40+
}
41+
}
42+
43+
@Test
44+
void givenAUserDefinedFunctionAsMyOwnClassReference_whenICallTheFunction_thenIGetTheResult() throws SQLException {
45+
try (Statement statement = connection.createStatement()) {
46+
statement.execute("""
47+
CREATE ALIAS HELLO FOR "com.baeldung.h2functions.CompiledFunctionUnitTest.hello";
48+
""");
49+
}
50+
51+
try (PreparedStatement statement = connection.prepareStatement("SELECT HELLO()")) {
52+
ResultSet rs = statement.executeQuery();
53+
54+
rs.next();
55+
String hello = rs.getString(1);
56+
assertEquals("Hello", hello);
57+
}
58+
}
59+
60+
public static String hello() {
61+
return "Hello";
62+
}
63+
}

0 commit comments

Comments
 (0)