我尝试制作一个项目我使用休眠连接 SQL,但失败了我不知道为什么它不能运行 这是我的项目,请告诉我为什么谢谢
型号 ZX.java:
public class ZX{private String zx01,zx02,zx03;//set&get}
订单.hbm.xml
<class name="model.ZX" dynamic-insert="false" dynamic-update="false" mutable="true"
optimistic-lock="version" polymorphism="implicit" select-before-update="false" table="zx_file">
<composite-id>
<key-property name="zx01" column="zx01"/>
</composite-id>
<property column="zx01" name="zx01"/>
<property column="zx02" name="zx02"/>
<property column="zx03" name="zx03"/>
</class>
控制/控制器.java
public java.util.List<model.ZX> findZX(){
Session session = sessionFactory.openSession();
//String hql = "from ZX where rownum<21" ;
//java.util.List list = this.hibernateTemplate.find(hql);
Criteria crit= session.createCriteria(ZX.class);
crit.add(Restrictions.like("zx01","T%"));
java.util.List<model.ZX> list2= crit.list();
session.close();
return list2;
}
亲/秀.java
public class show implements java.io.Serializable{
private control.controller con;
private java.util.List<model.ZX> zxtest;
public show() {
}public String search() {
this.zxtest = this.con.findZX();
return null;
} }
我的错误:
在此处输入图像描述
java.lang.NullPointerException
at pro.show.getZxtest(show.java:39)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:97)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
at javax.faces.component.UIData.getValue(UIData.java:732)
at javax.faces.component.UIData.getDataModel(UIData.java:1822)
at javax.faces.component.UIData.setRowIndexWithoutRowStatePreserved(UIData.java:484)
at javax.faces.component.UIData.setRowIndex(UIData.java:473)
这是我的项目:https://drive.google.com/open?id=1gEMKtuEgmJnOvtaDXPPNoUxhChs2lvt1
您需要使用休眠查询语言的 HQL。 和配置。 可以控制并将SQL连接到休眠,例如exmple.cfg.xml
<hibernate-configuration>
<session-factory>
<property name="hbm2ddl.auto">create</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.url">jdbc:mysql://localhost:3306/test</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<mapping resource="packagename/exmple.hbm.xml"/>//mapping file
</session-factory>
注意:在这里你创建新表的帮助下或创建ddl。对于更新,您可以使用创建更新。