how do you use data provider code example

Example 1: what is dataprovider in testng

DataProvider returns a single or multi-dimensional JAVA Object 
array to the test method and the test method will invoke x times 
in a (x multiply n) type of object array. For example, if the DataProvider 
returns an array of 3*2 objects, the corresponding test case will be 
invoked 3 times with 2 parameters each time.

@Test(dataProvider="myData")
    	public void testMethod(String author,String searchKey) throws InterruptedException{
    	{
        //CODES HERE
    }

@DataProvider(name="myData")
public Object[][] getDataFromDataprovider(){
    Object[][] obj = {{ "Guru99", "India" }, { "Krishna", "UK" },
    { "Bhupesh", "USA" }};
	return obj; 
}

Example 2: how do you use data provider

DataProvider returns a single or
multi-dimensional JAVA Object array
to the test method and the test method,
will invoke M times in a M*N type of object array.
For example, if the DataProvider returns
an array of 3*2 objects, the corresponding
test case will be invoked 3 times with 2 parameters each time.

	@Test(dataProvider="myData")
	public void testMethod(String author,String searchKey){
	{
	  //CODES HERE
	}

	@DataProvider(name="myData")
	public Object[][] getDataFromDataprovider(){
	    Object[][] obj={{ "Guru99", "India" }, { "Krishna", "UK" },{ "Bhupesh", "USA" }};
		return obj; 
	}