从视图中检索数据的查询无效

时间:2017-05-20 08:42:56

标签: java mysql view

我创建了一个视图作为三个表的集成,但是当我使用查询检索视图中的数据时...系统停止工作

我使用此查询创建视图:

PreparedStatement statement1 = (com.mysql.jdbc.PreparedStatement) con1.prepareStatement("
CREATE VIEW mcps1_patients_view AS 
SELECT a.PatientID
     , PatientGender
     , PatientDateOfBirth 
     , PatientMaritalStatus
     , a.Ad_ID
     , Ad_StartDateAndTime
     , Ad_EndDateAndTime
     , d.ICD10CM_Code
     , d.PrimaryDiagnosisDescription 
  From patientcorepopulatedtable p 
  JOIN  admissionscorepopulatedtable a 
  JOIN admissionsdiagnosescorepopulatedtable d  
");  
result1 = statement1.execute();
System.out.print("connected"); 

我想对创建的视图进行查询...

PreparedStatement statement4 = (com.mysql.jdbc.PreparedStatement) con2.prepareStatement(" SELECT * From mcps2_patients_view where P_ID= ? ");  
    statement4.setString(1, Hospital2_id);
    result4 = statement4.executeQuery();
    System.out.print("connected \n") 

但最后一个查询无法正常工作

有什么问题? 我该如何解决?

1 个答案:

答案 0 :(得分:0)

我认为你混淆了一些事情,你在创建视图时传递的查询sintax应该是原生SQL。来自javadoc

  

创建PreparedStatement对象以将参数化SQL语句发送到数据库

你在那里粘贴的东西似乎是JPQL。 SQL Join语句还需要ON部分来指定正在进行连接的列。类似于:SELECT... FROM patient p join patient_admission pa on pa.patient_id = p.id

这是一个错字吗?我希望你创建视图的代码有例外。