【发布时间】:2014-12-09 07:12:43
【问题描述】:
我是 J2EE 应用程序的新手,并尝试在通过学生 ID 搜索后显示数据库中的记录,这也是我的主键。 jdbc/studentDB 是我的 JNDI 名称。
studentdao.java 中的我的语法@Resource(name="jdbc/studentDB") 是否足以连接?如果是,是方法 executeFetchQuery(int id) 的问题吗?
我哪里出错了,请帮忙。
//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;
}
// 输出数据库中的id
fname :null
【问题讨论】:
标签: jakarta-ee jdbc ejb