2013-12-07 2 views
2

Так что я пытаюсь вставить данные, сохраненные в полях в мою базу данных, в настоящее время это не работает. Я могу поместить информацию в свою базу данных через класс Java, если я вручную вводить данные, например, INSERT INTO customer ('value1', 'value2', 'value3'); и т. д., но он не вводит никаких данных, когда я использую PreparedStatements и т. д.Вставка данных из класса Java в базу данных

String customer_name = request.getParameter("name"); //grab values from bookingForm 
    String customer_email = request.getParameter("email"); 
    String billing_address = request.getParameter("bAddress"); 
    String card_type = request.getParameter("card_type"); 
    String card_exp = request.getParameter("card_exp"); 
    String cardno = request.getParameter("Cardnum"); 
    String insertSQL; 
    try {{ 
      try (Connection conn = database.getConnection()) { 
       insertSQL = "INSERT INTO customer(customer_name, customer_email, billing_address, card_type, card_exp, cardno) VALUES(?, ?, ?, ?, ?, ?)"; 
       try (PreparedStatement ps = conn.prepareStatement(insertSQL)) { 
        ps.setString(1, customer_name); 
        ps.setString(2, customer_email); 
        ps.setString(3, billing_address); 
        ps.setString(4, card_type); 
        ps.setString(5, card_exp); 
        ps.setString(6, cardno); 
        ps.executeUpdate(); 

        conn.close(); 
       } 
      } 

    } 


} catch ( ClassNotFoundException | SQLException ex) { 
    Logger.getLogger(PayForm.class.getName()).log(Level.SEVERE, null, ex); 
} 
+0

исключений? –

+0

@AmitSharma извините, относительно новичок в этом, уловить на дне недостаточно? – Herpsherpington

+0

достаточно, но вы видите исключения в журнале? Вы проверили журнал? –

ответ

1

Где вы загружали постсекторный драйвер?

Connection c = null; 
    try { 
    Class.forName("org.postgresql.Driver"); 
    c = DriverManager 
     .getConnection("jdbc:postgresql://localhost:5432/testdb", 
     "postgres", "123"); 
    } catch (Exception e) { 
    e.printStackTrace(); 
    System.err.println(e.getClass().getName()+": "+e.getMessage()); 
    System.exit(0); 
    } 
    System.out.println("Opened database successfully"); 
} 

, а также, кажется Ther является дополнительным { брекеты в вашем коде.

+0

мой драйвер postgres, вход в систему и т. Д. Находится в другом классе, который я вызываю здесь - Connection conn = database.getConnection() (Im довольно уверен, что называет это?) – Herpsherpington

+0

загрузите свой полный код. с stackTrace –

+0

почему вы положили try {{ –

1

befor conn.close(); пишите conn.commit(); У меня есть твоя проблема, и эта работа для меня! я надеюсь помочь вам :) мой код, что работа является следовать:

package servlets; 

import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.sql.*; 
import java.text.*; 


import java.util.Date; 
/** 
* Created by ALI7 on 8/7/2015. 
*/ 
@WebServlet(name = "addnote") 

public class addnote extends HttpServlet { 
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    doGet(request,response); 
} 

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

    Connection c ; 
    PreparedStatement pst ; 
    response.setContentType("text/html"); 
    PrintWriter out= response.getWriter(); 
    try 
    { 
     Class.forName("org.postgresql.Driver"); 
     c = DriverManager 
       .getConnection("jdbc:postgresql://localhost:5432/postgres", 
         "postgres", "1"); 
     c.setAutoCommit(false); 


     String stm = "insert into note (note_id,name,text,date,time) values (default,?,?,?,?)"; 
     pst = c.prepareStatement(stm); 

     String dateString = request.getParameter("date"); 
     SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
     Date convertedDate = dateFormat.parse(dateString); 
     String timeString = request.getParameter("time"); 
     SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss"); 
     Date convertedtime = timeFormat.parse(timeString); 

     pst.setString(1,request.getParameter("name")); 
     pst.setString(2, request.getParameter("text")); 
     pst.setDate(3, new java.sql.Date(convertedDate.getTime())); 
     pst.setTime(4,new java.sql.Time(convertedtime.getTime())); 

     int i = pst.executeUpdate(); 

     if(i>0) 
      out.println("Inserted Successfully"); 
     else 
      out.println("Insert Unsuccessful"); 

     pst.close(); 
     c.commit(); 
     c.close(); 
    } catch (Exception e) { 
     System.err.println(e.getClass().getName()+": "+ e.getMessage()); 
     System.exit(0); 
    } 

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