此文件与mysql
建立了连接package Modelo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Conexion {
Connection cnn;
Statement state;
ResultSet res;
public Conexion(){
try{
Class.forName("org.apache.derby.jdbc.ClientDriver"); //driver
} catch (ClassNotFoundException ex){
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE, null, ex);
}
try{
cnn=DriverManager.getConnection("jdbc:derby://localhost:1527/universidad3", "root", "uts");
} catch(SQLException ex){
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE,null, ex);
} // solo conexion
}
public ArrayList<Persona> consultarTodo(){
ArrayList<Persona> personas= new ArrayList<Persona>();
try{
String query="select * from persona";
state= cnn.createStatement();
res= state.executeQuery(query);
while(res.next()){
personas.add(new Persona(res.getString("rut"),res.getString("nombre"), res.getInt("edad")));
}
return personas;
} catch(SQLException ex){
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE,null, ex);
}
return personas;
}
public int insertar(Persona p){
int bandera=0;
try{
String query= "insert into persona(rut, nombre, edad)"+"values ('"+p.getRut()+"','"+p.getNombre()+"',"+p.getEdad()+")";
try{
state=cnn.createStatement();
} catch(SQLException ex){
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE, null, ex);
}
bandera=state.executeUpdate(query);
} catch(SQLException ex){
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE, null, ex);
}
return bandera;
}
public boolean eliminar(String r){
try{
String query= "delete from persona where rut='"+r+"' ";
int saber=0;
state = cnn.createStatement();
saber = state.executeUpdate(query);
if (saber==1){
return true;
}
} catch(SQLException ex){
Logger.getLogger(Persona.class.getName()).log(Level.SEVERE,null,ex);
}
return false;
}
public int editar(Persona p){
int bandera=0;
try{
String query= "(update persona set rut=?, nombre=?, edad=?)"+"values ('"+p.getRut()+"','"+p.getNombre()+"',"+p.getEdad()+")";
try{
state=cnn.createStatement();
} catch(SQLException ex){
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE, null, ex);
}
bandera=state.executeUpdate(query);
} catch(SQLException ex){
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE, null, ex);
}
return bandera;
}
}
这是执行更新
的servlet文件package Controlador;
import Modelo.Conexion;
import Modelo.Persona;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Editar extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String rut = request.getParameter("txtRut");
String nombre = request.getParameter("txtNombre");
String edad = request.getParameter("txtEdad");
int e = 0;
try {
e= Integer.parseInt(edad);
} catch (NumberFormatException ex){
String error="Ingresar solo Numeros...";
request.getSession().setAttribute("error", error);
request.getRequestDispatcher("error.jsp").forward(request, response);
}
Persona p1= new Persona(rut,nombre,e);
Conexion cn= new Conexion();
if(cn.insertar(p1) >0){
String mensaje="Persona editada exitosamente..";
request.getSession().setAttribute("mensaje", mensaje);
request.getRequestDispatcher("exito.jsp").forward(request, response);
}
else{
String error="No se puedo registrar...";
request.getSession().setAttribute("error", error);
request.getRequestDispatcher("error.jsp").forward(request, response);
}
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
当我尝试运行项目时,我会收到以下错误:
c: users x2010s documents netbeansprojects mvcmysql src java controlador editar.java:73: 错误:类,接口或枚举预期 受保护的void doget(httpservletrequest请求,httpservletresponse响应) C: users x2010s documents netbeansprojects mvcmysql src java controlador editar.java:76: 错误:类,接口或枚举预期 } c: users x2010s documents netbeansprojects mvcmysql src java controlador editar.java:87: 错误:类,接口或枚举预期 受保护的void dopost(httpservletrequest请求,httpservletresponse响应) C: users X2010S documents netbeansprojects mvcmysql src java controlador editar.java:90: 错误:类,接口或枚举预期 } c: users x2010s documents netbeansprojects mvcmysql src java controlador editar.java:98: 错误:类,接口或枚举预期 public String getservletInfo(){c: users x2010s documents netbeansprojects mvcmysql src java controlador editar.java:100:100: 错误:类,接口或枚举预期 }//6错误C: USER X2010S documents netbeansprojects mvcmysql nbproject build-impl.xml:874: 执行此行时发生以下错误: C: USER X2010S Documents NetBeanSprojects MVCMYSQL nbproject build-impl.xml:296: 编译失败;有关详细信息,请参见编译器错误输出。建造 失败(总时间:3秒)
仔细阅读编译器错误消息。看来在方法doget之前,有一个'}'。
我建议您使用像Eclipse这样的复杂IDE,它在"运行项目"之前直接在编辑器中显示此类错误。