2015-03-02 72 views
1

我有一个函数“checkPatientId”是把参数作为一个“patient_id”,并返回“有效”如果表中的“patient_personal_details”存在patient_id或返回“无效的”,如果它不检索所有主键存在。使用Java持久性

public String checkPatientID(int patient_id) throws RemoteException{ 
    String result = "Valid"; 
    try{ 
     Class.forName("com.mysql.jdbc.Driver"); 
     Connection con = DriverManager.getConnection("jdbc:mysql://localhost/hospital_database","root",""); 
     String sql = "SELECT patient_id FROM patient_personal_details"; 
     Statement s = con.createStatement(); 
     s.execute(sql); 
     ResultSet rs = s.getResultSet(); 

     if(rs!=null){ 
      while(rs.next()){ 
       int num = rs.getInt(1); 
       if(num == patient_id){ 
        result = "Invalid"; 
       } 
      } 
     } 
    } 
    catch(SQLException e){ 
     System.out.println("Error: "+e); 
    } 
    catch(ClassNotFoundException e){ 
     System.out.println("Error: "+e); 
    } 
    return result; 
} 

我想知道如何使用Java Persistence而不是SQL来检索并检查patient_id。我已经生成了我的实体类和持久性单元,并建立了我的数据库连接。 P.S我使用NetBeans 8.0.2企业。

+0

上面的代码测试代码或您的代码? – Ajit 2015-03-02 10:18:22

+0

添加'WHERE patient_id =?'你的SQL和使用'patient_id'作为查询的参数。 – 2015-03-02 10:22:29

回答

1

Entity对象可以通过使用find() EntintyManager em的方法唯一标识和检索尝试它:Patient patient= em.find(Patient.class, 1);其中1是主键。如果在数据库中找不到对象,它将返回null。

0

实体对象可以被唯一地标识和检索通过使用

T getReference method of EntintyManager em 

尝试为:

Patient patient= em.getReference(Patient.class, 1); 

其中1是主键。它返回null如果对象未在数据库中找到。