hi all ,

Am doing event management project. In jsp page am using javascript date picker. Then i passed that to servlet page by the following code.

DateFormat formatter ;
formatter = new SimpleDateFormat("dd-MM-yyyy");
Date date=formatter.parse(request.getParameter("date"));

now I want to insert date in mysql database , How can I achieve that.Pls help me.

Thanks in advance ..

Recommended Answers

All 14 Replies

anyone pls help me

Do you know how to run queries with java and how in general to insert data in a database?
There are several ways so can you post the code that use to insert normal data, so we can give you a suggestion similar to your code style?
Do you use PreparedStatements or jua Statements to create your query?

DataManager dataManager = new DataManager();
        DateFormat formatter ; 
        formatter = new SimpleDateFormat("dd-MM-yyyy");
Date date=formatter.parse(request.getParameter("date"));

connectivity coding below

public void getUserData(Date date, String str_type, String str_eventholiday){

    query=null;
    try{
    query ="INSERT INTO `krishna`.`events_and_holidays` (`date`, `type`, `description`) " +
            "VALUES " +
            "(?,?,?)";
    pstm = con.prepareStatement(query);
    pstm.setDate(1, date);
    pstm.setString(2,str_type);
    pstm.setString(3,str_eventholiday);
    pstm.executeUpdate();
}
catch (SQLException e) {
    //e.printStackTrace();
    System.out.println(e.getMessage());
}

That parse method is giving you a java.util.Date object, you need a java.sql.Date object in the setDate method. See the Date(long) constructor of java.sql.Date and the getTime() method of java.util.Date and use the latter as the argument in the former to get a java.sql.Date instance.

Edit: P.S. it would have helped to know the exception you were getting.

Edit Again: It is also not normal to surround the schema, table, and column names with single quotes ( ' ), although you might surround them with double quotes ( " ) if they also represent reserved words in the db.

<%@ page language="JAVA" contentType="text/html" %>//directive to specify that language used is java and specifying the content type
<%@ page import="java.sql.*" %>//to import sql package
<html>
<head>
<title>Database</title>
</head>
<body>
<%
 String driverClass ="com.mysql.jdbc.Driver";
	String connectionString="jdbc:mysql://localhost:3306/login"	;
	String username="root";
	String password="password";
	String query="INSERT into table_name values(?)"	;
try{
	Class.forName(driverClass)	;//to use jdbc driver to connect to mysql database
	con=DriverManager.getConnection(connectionString,username,password);//to make connection
	stmt=con.prepareStatement(query);

 java.util.Date today = new java.util.Date();//date object
 stmt.setDate(1, today.getTime());//to insert the date at the wildcard sql statement used above
int a=stmt.executeUpdate()	;//executeUpdate will return the number of affected rows
	if(a>0)  {
		out.println("Data successfully inserted")	;
	}
else {
	out.println("Error");
}

}catch(Exception sql){out.println(sql.toString());}

%>
</body>
</html>

Thanks IIM ,masijade and javaAddict.. Thanks a lot for Ur answers .

If your problem is solved....mark the thread as solved....

Do not use scriptlets. Scriptlets were included in the first version of JSP and quickly gotten rid of in the second. They only still exist to facilitate backwards compatability. You need to use beans, or at the very least JSTL sql tags. And JSPs should not being doing anything except displaying data, anyway. Any site request that is to actually do anything should be going to a servlet (and that should also make use of existing beans) and then, after the work is done, should be forwarding the request to a JSP to actually display the page.

Thanks masijade

You can even use this way to insert record...

<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
 
<html>
<head>
<title>JINSERT Operation</title>
</head>
<body>
 
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost/TEST"
     user="root"  password="pass123"/>


<sql:query dataSource="${snapshot}" var="result">
INSERT INTO Employees VALUES (104, 2, 'Nuha', 'Ali');
</sql:query>
 
<sql:query dataSource="${snapshot}" var="result">
SELECT * from Employees;
</sql:query>
 
<table border="1" width="100%">
<tr>
   <th>Emp ID</th>
   <th>First Name</th>
   <th>Last Name</th>
   <th>Age</th>
</tr>
<c:forEach var="row" items="${result.rows}">
<tr>
   <td><c:out value="${row.id}"/></td>
   <td><c:out value="${row.first}"/></td>
   <td><c:out value="${row.last}"/></td>
   <td><c:out value="${row.age}"/></td>
</tr>
</c:forEach>
</table>
 
</body>
</html>

And again, JSPs should not be performing actions. Their purpose is display, and display only. You have heard the phrase "just because you can do something does not mean that you should", right?

Doing these sorts of things in a JSP usually leads to unscaleable and/or nearly unmaintainable code.

while u are picking the date using date class and populating it to the database fields u might not able to store the value,if the field type in database is of type date,and u r parsing a long value ie:while ur picking it from date it is going to return the date inthe form of long value so how it is actually mapped if we use different data types for dates with respect to different databases....I think it make sence if u found any solutions plese remind here....TQ.

the solution provided by mr iim is still giving me one error.
it gives "incompatible types: long cannot be converted to date". and secondly in my program i am using sql server 2008r2 i am facing a sqlexception for the insertion of date
in my database i have a column name date and the data type is datetime

e = (com.microsoft.sqlserver.jdbc.SQLServerException) com.microsoft.sqlserver.jdbc.SQLServerException: An explicit value for the identity column in table 'letterhead' can only be specified when a column list is used and IDENTITY_INSERT is ON.

Hello,
I am trying to save the date field into mysql table.
The date field in my jsp form is in format MM/DD/YYY and in database as YYYY/MM/DD.
How can I retrieve the date from form and insert into the table with YYYY/MM/DD format ?

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.