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 |
validation code / function to allow only Letters in a text box
how to get the User's Time of Day
Reading which Character Key was pressed
code to create a new window
How to encode and decode URL strings?
how to Auto Scroll the page
write a code to generate pseudorandom numbes
code to set the main window's size
code to detect availability of cookies
code to positioning of window in certain dimensions
code to keep a page Out of the browser history
could you please tell me for what javac, javax,swing,awt.*; are using. what is the meaning and differences. and also there are 4 access modifiers in java. public, private, protected, default. what is the meaning of these 4 access modifiers and difference. public is the access modifier void means return data type disp() means function name what mean by static