hibernate and sql connect



我尝试制作一个项目我使用休眠连接 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。对于更新,您可以使用创建更新。

最新更新