Exception in thread "main" java.lang.OutOfMemoryError: Java
heap space:
Answers were Sorted based on User's Feedback
Answer / laxmanit08
hi friends wht is my task is data is transfered one
db.tables to another db.tables
in tht i write a query check the backup compare to live wht
ever new rows tht will be inserted into backup in tht min of
data means it's wrkg .heavy data means it's not wrkg tell me
the reason how to solve this problem plzzzzzzzz
import java.util.*;
import java.sql.*;
import javax.sql.*;
public class connection
{
public static void main(String[] args)
{
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection con =
DriverManager.getConnection("jdbc:mysql://localhost:3306/testback","root","root");
Statement stmt=con.createStatement();
String payment_date=null;
String payment_ids=null;
ResultSet rs=stmt.executeQuery("select
payment_id,payment_date from care_billing_payment order by
payment_id desc limit 1");
if(rs.next())
{
payment_date= rs.getString("payment_date");
payment_ids= rs.getString("payment_id");
}
System.out.println(payment_date);
System.out.println(payment_ids);
con.close();
Vector v = new Vector();
if(payment_date!=null && payment_ids!=null)
{
System.out.println("Live Database");
Connection con1 =
DriverManager.getConnection("jdbc:mysql://localhost:3306/testlive","root","root");
Statement stmt1=con1.createStatement();
String sql1 = "SELECT
payment_id,payment_encounter_nr,payment_date,status,final_settlement
FROM care_billing_payment where payment_id >
'"+payment_ids+"' order by payment_id asc";
ResultSet rs1=stmt1.executeQuery(sql1);
while(rs1.next())
{
Hashtable h = new Hashtable();
long payment_id= rs1.getLong("payment_id");
System.out.println(payment_id);
String payment_id1 =
String.valueOf(payment_id);
long payment_encounter_nr =
rs1.getLong("payment_encounter_nr");
System.out.println(payment_encounter_nr);
String number =
String.valueOf(payment_encounter_nr);
h.put("payment_id",payment_id1);
h.put("payment_encounter_nr",number) ;
h.put("payment_date",(String)rs1.getString("payment_date"));
h.put("status",(String)rs1.getString("status"));
h.put("settlement",(String)rs1.getString("final_settlement"));
//
h.put("payment_cash_amount",rs1.getString("payment_cash_amount"));
// h.put("payment_receipt_nr",number1) ;
v.addElement(h);
}
con1.close();
}
Connection con2 =
DriverManager.getConnection("jdbc:mysql://localhost:3306/testback","root","root");
//Connect to demobilldb Data source
System.out.println("BackUp Database");
for(int i=0;i<v.size();i++)
{
Hashtable h1 = (Hashtable)v.elementAt(i);
String payment_id =
(String)h1.get("payment_id");
long payment_id1 =Long.parseLong(payment_id);
String encounter_nr =
(String)h1.get("payment_encounter_nr");
long encounter_nr1
=Long.parseLong(encounter_nr);
String status = (String)h1.get("status");
String settlement =
(String)h1.get("settlement");
String date = (String)h1.get("payment_date");
//String amount =
(String)h1.get("payment_cash_amount");
//String receipt_nr =
(String)h1.get("payment_receipt_nr");
// long receipt_nr1 =Long.parseLong(receipt_nr);
String sql2="select time_id from calendar
where the_date='"+date+"';";
Statement stmt2=con2.createStatement();;
ResultSet rs2 = stmt2.executeQuery(sql2);
int time_id=0;
if(rs2.next())
time_id=rs2.getInt(1);
PreparedStatement prpStmt =
con2.prepareStatement("insert into care_billing_payment
(payment_id,payment_encounter_nr,status,final_settlement,payment_date,time_id)
values(?,?,?,?,?,?)");
prpStmt.setLong(1,payment_id1);
prpStmt.setLong(2,encounter_nr1);
prpStmt.setString(3,status);
prpStmt.setString(4,settlement);
prpStmt.setString(5,date);
prpStmt.setInt(6,time_id);
// prpStmt.setString(6,receipt_nr1);
prpStmt.executeUpdate();
if(status.equals("paid") &&
settlement.equals("4"))
{
prpStmt = con2.prepareStatement("update
care_billing_payment set status=? where
payment_encounter_nr=?");
prpStmt.setString(1,status);
prpStmt.setLong(2,encounter_nr1);
prpStmt.executeUpdate();
}
}
/*{
String sql5="select * from calendar;";
Statement stmt5=con2.createStatement();
ResultSet rs5 = stmt5.executeQuery(sql5);
while(rs5.next())
{
int id5=rs5.getInt(1);
System.out.println(id5);
String date5 = rs5.getString(2);
System.out.println(date5);
String sql6 = "update care_billing_payment set
id='"+id5+"' where payment_date='"+date5+"'";
//String sql6 = "update care_billing_payment
set id='0' where payment_date='2007-11-20'";
Statement stmt6=con2.createStatement();
int i = stmt6.executeUpdate(sql6);
System.out.println(i);
}
}*/
con2.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
see this my task
}
Is This Answer Correct ? | 3 Yes | 2 No |
Answer / kalyan
Hi Lakshman,
*)Dont retrive all records at a time give limit when ever
getting records from database.
*) when ever inserting data into database use BatchUpdate
not prpStmt.executeUpdate(); then it will insert all records
at a time.
Is This Answer Correct ? | 1 Yes | 2 No |
code to get the coordinates of a Click Event
How to block double clicks
determine which Element received an Event
how to prevent an Event from performing its default behavior
Code to Block submission of form by pressing Enter Key
sample code to auto focusing the first field in a form
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space:
how to get the User's Time of Day
snippet to prevent submission of form when certain/any validations got failed
how to delay a function call ?
program to bring a window to the front
write a function to validate a given date