Problem med PreparedStatement?
Försöker att använda mig utav PreparedStatement men får det inte att fungera. Har kollat igenom en rad med olika tutorials för detta men finner inte svaret på mitt problem. Om någon kan se vad jag gjort för fel får ni gärna hojta till. Bifogar koder.
Dett är Servleten:
public class HittaArtNr extends HttpServlet {
public static String paramValue;
public String Pris;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/plain");
PrintWriter out = response.getWriter();
paramValue=request.getParameter("test");
DBConnector db = new DBConnector();
try {
db.openDBConnector()
} catch (SQLException ex) {
ex.printStackTrace();//Kastar undantag
}
response.setContentLength(paramValue.length());
String sql = "SELECT Vara, Pris FROM Varor where ArtikelNr="+ paramValue;
ResultSet rs = db.getResultSet(sql);
try{
while(rs.next()){
String lastName = rs.getString(1);
int test = rs.getInt(2);
System.out.println(lastName + test);
}
}
catch(SQLException sqlE){
out.println("Databas fel!");//Kastar undantag
}
//Stänger databasuppkoppling
db.closeDBConnector();
out.close();
}
// <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
*/
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
*/
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
*/
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
Här är hjälpklassen DBConnector
public DBConnector (String driver, String url){
this.driver=driver;//Tilldelar variabeln
this.url=url;//Tilldelar variabeln
}
public DBConnector(){
pointBaseDriver="com.mysql.jdbc.Driver";
pointBaseUrl="jdbc:mysql://localhost:8889/Matlista";
}
public void openDBConnector() throws SQLException{
try{
Class.forName(pointBaseDriver);
con=DriverManager.getConnection(pointBaseUrl, "root", "root");
}catch(ClassNotFoundException cnfExp){
System.out.print(cnfExp.getMessage());
}catch(SQLException sqlExp){
System.out.println(sqlExp.getMessage());
}
}
public ResultSet getResultSet(String SQLString){
ResultSet rs=null;
try{
if(con==null){
openDBConnector();
}
PreparedStatement prepStmt = con.prepareStatement(SQLString);
rs = null;
int varde = Integer.parseInt(HittaArtNr.paramValue);
prepStmt.setInt(1, varde);
rs = prepStmt.executeQuery();
}
catch(SQLException sqlExp){
System.out.println(sqlExp.getMessage());//Kastar undantag
}
return rs;
}
public void getResultSet1(String SQLString){
ResultSet rs=null;
try{
if(con==null){
openDBConnector();
}
Statement st = con.createStatement();
boolean rs1=st.execute(SQLString);
}
catch(SQLException sqlExp){
System.out.println(sqlExp.getMessage());
}
}
public void closeDBConnector(){
try{
con.close();
}
catch(SQLException sqlExp){
System.out.println(sqlExp.getMessage());
}
}
}
Felmedelandet är:
INFO: Parameter index out of range (1 > number of parameters, which is 0).
VARNING: StandardWrapperValve[HittaArtNr]: PWC1406: Servlet.service() for servlet HittaArtNr threw exception
java.lang.NullPointerException