Sunday, 27 January 2019

Read data from Database using Hashmap

                             1)Read data from Oracle table using HashMap

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;

//create a Employee3 class
class Employee3 {
private int Id;
private String Fname;
private String Lname;
private int Age;

public Employee3(int id, String fname, String lname, int age) {
this.Id = id;
this.Fname = fname;
this.Lname = lname;
this.Age = age;
}

public int getId() {
return this.Id;
}

public String getFname() {
return this.Fname;
}

public String getLname() {
return this.Lname;
}

public int getAge() {
return this.Age;
}

// create a tostring method to diplay data
public String ToString() {
return this.Id + " " + this.Fname + " " + this.Lname + " " + this.Age;
}
}

public class Oracle {
public static void main(String[] args) throws Exception {

Connection con = null;
Statement st = null;
ResultSet rs = null;
Employee3 u;

// create the hashmap
HashMap<Integer, Employee3> map = new HashMap<Integer, Employee3>();

try {
Class.forName("oracle.jdbc.OracleDriver");
con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "system", "swamy");
st = con.createStatement();
DatabaseMetaData dbm = con.getMetaData();
ResultSet rs1 = dbm.getTables(null, null, "employee", null);
if (rs1.next()) {
System.out.println("Table exists");
} else {
System.out.println("Table does not exist");
// create table
int x = st.executeUpdate(
"create table employee(id number NOT NULL, fname VARCHAR(100) NOT NULL,lname VARCHAR(40) NOT NULL, age number(3))");
if (x == -1)
System.out.println("table created");

}

// insert row
Scanner s = new Scanner(System.in);
System.out.println("enter user id");
int n = s.nextInt();
System.out.println("enter user fname");
String str = s.next();
System.out.println("enter user lname");
String lname = s.next();
System.out.println("enter user age");
int m = s.nextInt();
int x1 = st.executeUpdate("insert into employee values(" + n + ",'" + str + "','" + lname + "'," + m + ")");
if (x1 == -1)
System.out.println("1 row inserted");

// select data
rs = st.executeQuery("SELECT * FROM employee");
while (rs.next()) {
Integer id = rs.getInt("id");
String fname = rs.getString("fname");
String lname1 = rs.getString("lname");
int age = rs.getInt("age");
u = new Employee3(id, fname, lname1, age);

// set data in the hashmap
map.put(id, u);

}

// display data from the hashmap
for (Integer i : map.keySet()) {
Employee3 us = map.get(i);
System.out.println(us.getId() + " " + us.getFname() + " " + us.getLname() + " " + us.getAge());
}

// show data from hashmap using our ToString Method
System.out.println("______With ToString______");
for (Integer i : map.keySet()) {
Employee3 us = map.get(i);
System.out.println(us.ToString());
}

} catch (SQLException ex) {
Logger.getLogger(Oracle.class.getName()).log(Level.SEVERE, null, ex);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
                           2)Read data from My SQL table using HashMap 

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;

//create a Employee2 class
class Employee2 {
private int Id;
private String Fname;
private String Lname;
private int Age;

public Employee2() {
}

public Employee2(int id, String fname, String lname, int age) {
this.Id = id;
this.Fname = fname;
this.Lname = lname;
this.Age = age;
}

public int getId() {
return this.Id;
}

public String getFname() {
return this.Fname;
}

public String getLname() {
return this.Lname;
}

public int getAge() {
return this.Age;
}

// create a tostring method to diplay data
public String ToString() {
return this.Id + " " + this.Fname + " " + this.Lname + " " + this.Age;
}
}

public class MySql {

public static void main(String[] args) {
Connection con = null;
Statement st = null;
ResultSet rs = null;
Employee2 u;

// create the hashmap
HashMap<Integer, Employee2> map = new HashMap<Integer, Employee2>();

try {
con = DriverManager.getConnection("jdbc:mysql://localhost/testdb", "root", "root");
st = con.createStatement();
DatabaseMetaData dbm = con.getMetaData();
ResultSet rs1 = dbm.getTables(null, null, "employee", null);
if (rs1.next()) {
System.out.println("Table exists");
} else {
System.out.println("Table does not exist");
// create table
int x = st.executeUpdate(
"create table employee(id INT NOT NULL, fname VARCHAR(100) NOT NULL,lname VARCHAR(40) NOT NULL, age int(3))");
if (x == -1)
System.out.println("table created");
}

// insert row
Scanner s = new Scanner(System.in);
System.out.println("enter user id");
int n = s.nextInt();
System.out.println("enter user fname");
String str = s.next();
System.out.println("enter user lname");
String lname = s.next();
System.out.println("enter user age");
int m = s.nextInt();
int x1 = st.executeUpdate("insert into employee values(" + n + ",'" + str + "','" + lname + "'," + m + ")");
if (x1 == -1)
System.out.println("1 row inserted");
// select data
rs = st.executeQuery("SELECT * FROM employee");
while (rs.next()) {
Integer id = rs.getInt("id");
String fname = rs.getString("fname");
String lname1 = rs.getString("lname");
int age = rs.getInt("age");
u = new Employee2(id, fname, lname1, age);
// set data in the hashmap
map.put(id, u);
}

// display data from the hashmap
for (Integer i : map.keySet()) {
Employee2 us = map.get(i);
System.out.println(us.getId() + " " + us.getFname() + " " + us.getLname() + " " + us.getAge());
}

// show data from hashmap using our ToString Method
System.out.println("______With ToString______");
for (Integer i : map.keySet()) {
Employee2 us = map.get(i);
System.out.println(us.ToString());
}

} catch (SQLException ex) {
Logger.getLogger(MySql.class.getName()).log(Level.SEVERE, null, ex);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}

3)Read data from My SQL table using HashMap without passing field names.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("/storedQuery")
public class StoredProcedureController {

@Value("${spring.datasource.url}")
private String url;

@Value("${spring.datasource.password}")
private String password;

@Value("${spring.datasource.username}")
private String user;

@RequestMapping(value = "/fetchAllRecords")
public @ResponseBody List<HashMap<String, Object>> fetchAllRecords() throws SQLException {

String query = "SELECT * FROM employee";

Connection dbConnection = DriverManager.getConnection(url, user, password);
PreparedStatement stmt = dbConnection.prepareStatement(query);

ResultSet resultSet = stmt.executeQuery();
ResultSetMetaData rsmd = resultSet.getMetaData();
int columns = rsmd.getColumnCount();
ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
while (resultSet.next()) {
HashMap<String, Object> row = new HashMap<String, Object>(columns);
for (int i = 1; i <= columns; ++i) {
row.put(rsmd.getColumnName(i), resultSet.getObject(i));
}
list.add(row);
}

dbConnection.close();

return list;
}

}

                               4)Read data from Mongo DB 

import java.net.UnknownHostException;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.MongoClient;
import com.mongodb.MongoException;

class Employee extends BasicDBObject {

private static final long serialVersionUID = 2105061907470199595L;
public String FNAME = "fname";
public String LNAME = "lname";
public String AGE = "age";
public static final String COLLECTION_NAME = "employee";

public void setFname(String fname) {
put(FNAME, fname);
}

public void setLname(String lname) {
put(LNAME, lname);
}

public void setAge(String age) {
put(AGE, age);
}

}

public class MongoDb {

public static void main(String[] args) throws UnknownHostException, MongoException {
// create the hashmap
MongoClient mongo = new MongoClient("localhost", 27017);
DB db = mongo.getDB("testdb");
DBCollection employeeCollection = db.getCollection(Employee.COLLECTION_NAME);

Employee employee = new Employee();
employee.setFname("swamy");
employee.setLname("Bairu");
employee.setAge("31");

// display values
DBCursor cursor = employeeCollection.find();
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
}
}

5) To run above java files, we have to use pom.xml file and application.properties file

pom.xml file

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.corejava</groupId>
<artifactId>read-data-from-db</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<repositories>
<!-- Repository for ORACLE ojdbc6. -->
<repository>
<id>codelds</id>
<url>https://code.lds.org/nexus/content/groups/main-repo</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.12.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.oracle.jdbc/ojdbc8 -->
<dependency>
<groupId>com.oracle.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>18.0.0.0</version>
</dependency>
</dependencies>
</project>

application.properties file

## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
spring.datasource.url = jdbc:mysql://localhost:3306/shristestdb?useSSL=true
spring.datasource.username = root
spring.datasource.password = swamy


## Hibernate Properties
# The SQL dialect makes Hibernate generate better SQL for the chosen database
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

# Hibernate ddl auto (create, create-drop, validate, update)

spring.jpa.hibernate.ddl-auto = update

No comments:

Post a Comment