2013-05-07 3 views
0

Я пытаюсь написать в базу данных MySql, используя форму HTML, с Jquery Я не могу заставить сервлет писать в базу данных. Я не вижу ничего очевидного, что я делаю неправильно. Вот код для сервлета и код для файла HTML.Данные формы JQuery Вставить базу данных MySQL

Servlet:

package com.david.servlets; 
import java.io.IOException; 
import java.sql.Connection; 
import java.sql.PreparedStatement; 
import java.sql.SQLException; 
import java.util.Hashtable; 
import javax.naming.Context; 
import javax.naming.InitialContext; 
import javax.naming.NamingException; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.sql.DataSource; 


/** 
* Servlet implementation class myForm 
*/ 
public class myForm extends HttpServlet { 

    /** 
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

    } 

    public void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException 
     { 
       //Get parameters 
      String id = request.getParameter("ID"); 
      String fname = request.getParameter("FirstName"); 
      String lname = request.getParameter("LastName"); 


      //Get Connection 
      try { 
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
      } catch (ClassNotFoundException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      System.out.println("Found a driver"); 
      Connection dbConnect = null; 
      try { 
       dbConnect = getConnection("localhost", 7001); 
      } catch (SQLException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (NamingException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 


      System.out.println("Made a connection"); 


       //Create Query 
      String query = "INSERT INTO test.customer (ID, FirstName, LastName) " + 
        "VALUES (" + id + ", " + fname + ", " + lname + ")"; 
      PreparedStatement dbStatement = null; 
      try { 
       dbStatement = dbConnect.prepareStatement(query); 
      } catch (SQLException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      //Execute Query 
      try { 
       dbStatement.executeUpdate(query); 
      } catch (SQLException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

      //close connection 
      try { 
       dbStatement.close(); 
      } catch (SQLException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      try { 
       dbConnect.close(); 
      } catch (SQLException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

     } 





public Connection getConnection(String server, int port) 
     throws SQLException, NamingException { 
    Context ctx = null; 
    Hashtable ht = new Hashtable(); 
    ht.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory"); 
    ht.put(Context.PROVIDER_URL, "t3://"+server+":"+port); 
    ctx = new InitialContext(ht); 
    DataSource ds = (javax.sql.DataSource) ctx.lookup ("localmysql"); 
    Connection conn = ds.getConnection(); 
    //conn.setAutoCommit(true); 
    return conn; 
}  





} 

HTML:

<html> 
<head> 
<title>myForm</title> 
<script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.js" type="text/javascript"></script> 
<script type="text/javascript"> 

    $("#submit").click(function() { 
     Var ID = $("#ID").val(); 
     Var FirstName = $("#FirstName").val(); 
     Var LastName = $("#LastName").val(); 
     $.post("myForm", $("form").serialize(), insertCallback); 
    }); 

    function insertCallback(result) { 
     if (result == "success") { 
      alert("Record added!"); 
     } else { 
      alert("Could not add Record!"); 
     } 
    } 

</script> 
</head> 
<body> 
<form action="myForm" method="POST"> 
ID: <input type="number" name="ID"> 
FirstName: <input type="text" name="FirstName"> <br> 
LastName: <input type="text" name="LastName"> <br> 
<input type="button" value="submit"> 
</form> 
</body> 
</html> 
+0

Подробнее о сервлетах в частности и HTML в целом. Большая часть вашего кода слишком неудобна. – skuntsel

ответ

0

(1) Вы должны дать свою кнопку представить id="submit" для того, чтобы работать с функцией мыши.

(2) Изменить Var на var.

+0

оба из них исправлены, спасибо, но это все еще не работает должным образом. – imsofnbamf

+0

Несмотря на то, что JavaScript будет действовать после исправлений, я сомневаюсь, что сервлет OP будет вызван. – skuntsel

+0

@skuntsel, что я делаю неправильно, чтобы назвать этот сервлет? – imsofnbamf

Смежные вопросы