I am new to J2EE application and trying to display records from database after searching it by the student id which is also my primary key. jdbc/studentDB is my JNDI name.
Is MY syntax @Resource(name="jdbc/studentDB") in studentdao.java enough for the connection?If yes,Is the problem with method executeFetchQuery(int id)?
Where I am going wrong please help.
//search.java(servlet)
ResultSet rs = ***studentDao.executeFetchQuery(v);***
String fName = null;
try{
fName = rs.getString("firstname");
while(rs.next()){
fName = rs.getString("firstname");
}
}catch (Exception ex){
System.out.println("error: "+ex);
}
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet getdata</title>");
out.println("</head>");
out.println("<body>");
out.println("fname: "+ fName);
out.println("</body>");
out.println("</html>");
//studentdao.java
//required imports
@Stateless
public class StudentDao implements StudentDaoLocal {
@Resource(name="jdbc/studentDB")
private DataSource datasource;
@PersistenceContext
private EntityManager em;
@Override
public void addStudent(Student student) {
em.persist(student);
}
@Override
public void editStudent(Student student) {
em.merge(student);
}
@Override
public void deleteStudent(int studentId) {
em.remove(getStudent(studentId));
}
@Override
public Student getStudent(int studentId) {
return em.find(Student.class, studentId);
}
@Override
public List<Student> getAllStudents() {
return em.createNamedQuery("Student.getAll").getResultList();
}
/**
*
* @param id
* @return
*/
@Override
***public ResultSet executeFetchQuery(int id){***
ResultSet rs = null;
try{
Connection conn = datasource.getConnection();
String sql = "SELECT * FROM STUDENT WHERE STUDENTID = '" + id +"'";
rs = conn.createStatement().executeQuery(sql);
conn.close();
} catch (Exception e) {
System.err.println(e.getMessage());
}
return rs;
}
// output for a id in database
fname :null