|
Subject:
|
Sequencial ID by date Java
|
|
Posted By:
|
zaman1111
|
Post Date:
|
9/22/2004 3:17:35 PM
|
I want to generate ID number which will be reset everyday. 9/22/04 (1, 2, 3, 4, 5, .....) 9/23/04 (1, 2, 3, 4, 5, .....) I am using JSp and recording the dates and creating autonumber Id, but i also want another ID by date. Any help!
|
|
Reply By:
|
angrycat
|
Reply Date:
|
9/22/2004 4:10:53 PM
|
hello,
Not sure what you mean. What are the numbers for? It is possible to return days as the day of the year i.e. 1 - 365, there are solutions in the sun java forums that go into how to use calendar in detail, but here's a snippet of mine that shows how to do it.
import java.util.*;
public class getToday { public String getToday(int offset) { Calendar cal = Calendar.getInstance(); int dayOfYear = cal.get(Calendar.DAY_OF_YEAR); // get today offset = dayOfYear + offset; // add any offset to today cal.set( Calendar.DAY_OF_YEAR, offset); // set day required using offset String today = (cal.get(Calendar.YEAR)) + "/" + // format date for entry to database (cal.get(Calendar.MONTH)+1) + "/:" + (cal.get(Calendar.DAY_OF_MONTH)) + " Here is day of year: " + (cal.get(Calendar.DAY_OF_YEAR)); return today; } }
If you simply want to know whether the date has changed since it was last opened you will need a place to store the 'last opened' date. I dont know where you could put this other than in a database table.
|
|
Reply By:
|
zaman1111
|
Reply Date:
|
9/23/2004 10:31:21 AM
|
Dear angrycat, Thanks. But this is not what i want. I want to assign a job number for a user request form. Our dept. wants the job number to be reset everyday. Like say for example, if there are some job requests today it will get the number assigned sequentially 1, 2, 3, 4 …and it will follow as many requests are there for today. But tomorrow the job requests have to start with number 1, 2, 3, 4 …. So, everyday the job number will reset to one. I am having problem. I am trying to compare the today’s date with the date of the last record entered in the database, but getting errors. Thanks again.
|
|
Reply By:
|
zaman1111
|
Reply Date:
|
9/23/2004 12:16:01 PM
|
I am sharing the code. <%@ page contentType="text/html; charset=utf-8" import="java.sql.*, javax.mail.*, javax.mail.internet.*, java.util.*" errorPage="error.jsp"%>
<% // define variables and assign values to variables String Client_Time = request.getParameter("Client_Time"); //Value: new java.util.Date() Getting the system date and time from the client String request_Date = request.getParameter("request_Date"); //User typed date in a textbox int Day_id = 0; //initialized the day it
//load the MS Access JDBC driver Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //open a connection to the "Programming_Job_Request" database String url="jdbc:odbc:Programming_Job_Request"; Connection testConn= DriverManager.getConnection(url,"test1","test1");
%>
<% String jsql2="Select * from Job_History ORDER by ID DESC"; Statement stmt2 = testConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs1 = stmt2.executeQuery(jsql2);
//The problem is here. //check the date and increment the day id if already a id exist by that date while(rs1.first()){ String pre_request_Date= rs1.getString("request_Date"); if (request_Date != pre_request_Date){ Day_id = 1; } else{ Day_id = Day_id +1;
//Print to Browser //out.println(jsql2); //Print to System System.out.println(jsql2); } //System.out.println(Day_id);
} rs1.close();
%>
<% //place query results in a ResultSet object and insert to teh DB
String jsql="INSERT INTO Job_History(Day_id, request_Date, Client_Time) VALUES (?, ?, ?)" ; //Print to Browser //out.println(jsql); //Print to System //System.out.println(jsql);
%>>>><%=Client_Time%>>>>><%
//create a statement object for sending SQL queries PreparedStatement stmt = testConn.prepareStatement(jsql); stmt.setInt(1, Day_id); stmt.setString(2, request_Date); stmt.setString(3, Client_Time); // stmt.setInt(7, Integer.parseInt(uid)); stmt.executeUpdate(); //clean up current resultse object if (stmt!=null)stmt.close(); %>
<% String jsql1="Select * from Job_History where Client_Time = '"+Client_Time+"'"; //"SELECT * FROM user WHERE user_name = '"+Client_Time+"'"; Statement stmt1 = testConn.createStatement(); ResultSet rs = stmt1.executeQuery(jsql1); while(rs.next()){ String user_id= rs.getString("ID"); //An AutoNumbered ID from the Database and the Client time will print the current ID
%>
<html>
<head> <meta http-equiv="Content-Language" content="en-us"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Information Technology Resources</title> </head> <body> <table border="0" width="450" id="table10"> <form method="POST" action="Implementation_estimated.jsp">
<tr> <td><h3>Information Technology Resources<br>Programming Request Form</h3><br>
<table border="0" width="480" id="table11" height="0"> <tr> <td colspan="4" width="0"> <b><font size="4">Control Number:<%=user_id%></font></b> (Please remember this Number)</td> </tr> <tr> <td colspan="4"> Day ID: <%=Day_id%></td> </tr> <tr> <td colspan="4"> <font face="Arial" size="2">Request Date:</font><%=request_Date%> </td> </tr> <% } rs.close(); %> <% if (testConn!=null)testConn.close(); %> </table> </body> </html>
|
|
Reply By:
|
angrycat
|
Reply Date:
|
9/23/2004 2:05:26 PM
|
Hello,
You cannot compare strings with '=' so:
if (request_Date != pre_request_Date)
is incorrect.
You should use .equals.
if (string1.equals(string2))
or with a literal
if (string1.equals("myHardCoding"))
|
|
Reply By:
|
zaman1111
|
Reply Date:
|
9/23/2004 3:19:14 PM
|
Thanks Mr. angrycat, I resolved it, but now its always 1. cant tell if it is comparing <% /* */ String jsql2="Select * from Job_History1 ORDER by ID DESC"; Statement stmt2 = testConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs1 = stmt2.executeQuery(jsql2);
//The problem is here. //check the date and increment the day id if already a id exist by that date rs1.first(); SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy"); //this is also ok to get the util date in string format //GregorianCalendar cal = new GregorianCalendar(); //String s = formatter.format(cal.getTime());
java.util.Date now = new java.util.Date(); String s = formatter.format(now); //convert date to string
//String pre_request_Date= rs1.getString("request_Date");
String pre_request_Date = formatter.format(rs1.getDate("request_Date"));
if (s.equals(pre_request_Date)){ Day_id = Day_id +1; } else{ Day_id = 1;
//Print to Browser //out.println(jsql2); //Print to System //System.out.println(jsql2); } System.out.println("Current ID: " + Day_id); System.out.println("Today: " + s); System.out.println("Previous Date Record: " + pre_request_Date);
rs1.close();
%>
|
|
Reply By:
|
zaman1111
|
Reply Date:
|
9/23/2004 3:38:33 PM
|
i think i resolved it. Thanks to all.
|
|
Reply By:
|
angrycat
|
Reply Date:
|
9/24/2004 1:19:32 PM
|
You can use the ! not equals operater with this, I THINK it goes before the brackets:
if !(s.equals(pre_request_Date))
Cant be sure if this is the right place but it can definately be done
|