[code=Java]
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration><session-factory>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.url">jdbc:mysql://localhost:3306/flowershop</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="myeclipse.connection.profile">flowerconnect</property>
<mapping resource="User.hbm.xml" />
<mapping resource="Kind.hbm.xml"/>
<mapping resource="Flower.hbm.xml"/>
</session-factory></hibernate-configuration>
[/code]
把上面hibernate的配置文件里的 <mapping resource="Flower.hbm.xml"/>删除就可以正常的连接数据库,要是有那句的话,所有的数据库操作都不会成功。请高手帮忙看下!
Flower.hbm.xml配置文件<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.alavu.model">
<!-- 每个class元素映射一个持久化类 -->
<class name="Flower" table="flower">
<id name="flowerId" column="flowerId">
<generator class="identity"/>
</id>
<property name="flowerName" column="flowerName"/>
<property name="flowerPrice" column="flowerPrice"/>
<property name="flowerStock" column="flowerStock"/>
<property name="flowerDiscout" column="flowerDiscount"/>
<property name="flowerPicture" column="flowerPicture"/>
<property name="flowerDesc" column="flowerDesc"/>
<many-to-one name="kind" column="kind_Id" />
</class>
</hibernate-mapping>Flower.java源码package cn.alavu.model;public class Flower {
private int flowerId;
private String flowerName;
private float flowerPrice;
private int flowerStock;
private String flowerDesc;
private float flowerDiscount;
private String flowerPicture;
private Kind kind;
public Flower()
{}
public void SetFlowerId(int flowerId)
{
this.flowerId = flowerId;
}
public void setFlowerName(String flowerName)
{
this.flowerName = flowerName;
}
public void setFlowerPrice(float flowerPrice)
{
this.flowerPrice = flowerPrice;
}
public void setFlowerStock(int flowerStock)
{
this.flowerStock = flowerStock;
}
public void setFlowerDesc(String flowerDesc)
{
this.flowerDesc = flowerDesc;
}
public void setFlowerDiscount(float flowerDiscount)
{
this.flowerDiscount = flowerDiscount;
}
public void setFlowerPicture(String flowerPicture)
{
this.flowerPicture = flowerPicture;
}
public void setKind(Kind kind)
{
this.kind = kind;
}
public int getFlowerId()
{
return flowerId;
}
public String getFlowerName()
{
return flowerName;
}
public float getFlowerPrice()
{
return flowerPrice;
}
public int getFlowerStock()
{
return flowerStock;
}
public String getFlowerDesc()
{
return flowerDesc;
}
public float getFlowerDiscount()
{
return flowerDiscount;
}
public Kind getKind()
{
return kind;
}
public String getFlowerPicture()
{
return flowerPicture;
}
}数据库
CREATE TABLE `flower` (
`flowerId` int(10) unsigned NOT NULL auto_increment,
`flowerName` varchar(45) NOT NULL,
`flowerPrice` float NOT NULL,
`flowerStock` int(10) unsigned NOT NULL,
`flowerDiscount` float NOT NULL,
`flowerPicture` varchar(45) NOT NULL,
`kind_Id` int(10) unsigned NOT NULL,
`flowerDesc` varchar(255) NOT NULL,
PRIMARY KEY (`flowerId`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
错误报告:
javax.servlet.ServletException
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
cn.alavu.util.EncodeServlet.process(EncodeServlet.java:13)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause java.lang.NullPointerException
cn.alavu.service.ServiceImpl.createKind(ServiceImpl.java:76)
cn.alavu.action.KindAddAction.execute(KindAddAction.java:45)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
cn.alavu.util.EncodeServlet.process(EncodeServlet.java:13)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
请大家帮忙看下
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration><session-factory>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.url">jdbc:mysql://localhost:3306/flowershop</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="myeclipse.connection.profile">flowerconnect</property>
<mapping resource="User.hbm.xml" />
<mapping resource="Kind.hbm.xml"/>
<mapping resource="Flower.hbm.xml"/>
</session-factory></hibernate-configuration>
[/code]
把上面hibernate的配置文件里的 <mapping resource="Flower.hbm.xml"/>删除就可以正常的连接数据库,要是有那句的话,所有的数据库操作都不会成功。请高手帮忙看下!
Flower.hbm.xml配置文件<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.alavu.model">
<!-- 每个class元素映射一个持久化类 -->
<class name="Flower" table="flower">
<id name="flowerId" column="flowerId">
<generator class="identity"/>
</id>
<property name="flowerName" column="flowerName"/>
<property name="flowerPrice" column="flowerPrice"/>
<property name="flowerStock" column="flowerStock"/>
<property name="flowerDiscout" column="flowerDiscount"/>
<property name="flowerPicture" column="flowerPicture"/>
<property name="flowerDesc" column="flowerDesc"/>
<many-to-one name="kind" column="kind_Id" />
</class>
</hibernate-mapping>Flower.java源码package cn.alavu.model;public class Flower {
private int flowerId;
private String flowerName;
private float flowerPrice;
private int flowerStock;
private String flowerDesc;
private float flowerDiscount;
private String flowerPicture;
private Kind kind;
public Flower()
{}
public void SetFlowerId(int flowerId)
{
this.flowerId = flowerId;
}
public void setFlowerName(String flowerName)
{
this.flowerName = flowerName;
}
public void setFlowerPrice(float flowerPrice)
{
this.flowerPrice = flowerPrice;
}
public void setFlowerStock(int flowerStock)
{
this.flowerStock = flowerStock;
}
public void setFlowerDesc(String flowerDesc)
{
this.flowerDesc = flowerDesc;
}
public void setFlowerDiscount(float flowerDiscount)
{
this.flowerDiscount = flowerDiscount;
}
public void setFlowerPicture(String flowerPicture)
{
this.flowerPicture = flowerPicture;
}
public void setKind(Kind kind)
{
this.kind = kind;
}
public int getFlowerId()
{
return flowerId;
}
public String getFlowerName()
{
return flowerName;
}
public float getFlowerPrice()
{
return flowerPrice;
}
public int getFlowerStock()
{
return flowerStock;
}
public String getFlowerDesc()
{
return flowerDesc;
}
public float getFlowerDiscount()
{
return flowerDiscount;
}
public Kind getKind()
{
return kind;
}
public String getFlowerPicture()
{
return flowerPicture;
}
}数据库
CREATE TABLE `flower` (
`flowerId` int(10) unsigned NOT NULL auto_increment,
`flowerName` varchar(45) NOT NULL,
`flowerPrice` float NOT NULL,
`flowerStock` int(10) unsigned NOT NULL,
`flowerDiscount` float NOT NULL,
`flowerPicture` varchar(45) NOT NULL,
`kind_Id` int(10) unsigned NOT NULL,
`flowerDesc` varchar(255) NOT NULL,
PRIMARY KEY (`flowerId`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
错误报告:
javax.servlet.ServletException
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
cn.alavu.util.EncodeServlet.process(EncodeServlet.java:13)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause java.lang.NullPointerException
cn.alavu.service.ServiceImpl.createKind(ServiceImpl.java:76)
cn.alavu.action.KindAddAction.execute(KindAddAction.java:45)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
cn.alavu.util.EncodeServlet.process(EncodeServlet.java:13)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
请大家帮忙看下
和KindAddAction.java的45行有空指针异常
看下Flower.hbm.xml 这个文件的引用路径对不对
查看下那个对象是null就知道出的什么错了
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.alavu.model">
<!-- 每个class元素映射一个持久化类 -->
<class name="Kind" table="kind">
<id name="kindId">
<generator class="identity"/>
</id>
<property name="kindName"/>
<property name="kindDesc"/>
<set name="flowers">
<key column="kind_Id"/>
<one-to-many class="Flower"/>
</set> 红色部分为新增的,也就是修改了的。要是增加这部分,也会导致连不到数据库
</class>
</hibernate-mapping>Kind.javapackage cn.alavu.model;
import java.util.*;public class Kind {
private int kindId;
private String kindName;
private String kindDesc;
private Set<Flower> flowers = new HashSet<Flower>();
public Kind()
{}
public void setKindId(int kindId)
{
this.kindId = kindId;
}
public void setKindName(String kindName)
{
this.kindName = kindName;
}
public void setKindDesc(String kindDesc)
{
this.kindDesc = kindDesc;
}
public void setFlowers(Set<Flower> flowers)
{
this.flowers = flowers;
}
public int getKindId()
{
return kindId;
}
public String getKindName()
{
return kindName;
}
public String getKindDesc()
{
return kindDesc;
}
public Set<Flower> getFlowers()
{
return flowers;
}
}
很明显了。
<many-to-one name="kind" class="Kind" column="kind_Id" />
我写的级联操作里面是要加的!
试试吧……
java.lang.NullPointerException //空指针
cn.alavu.service.ServiceImpl.createKind(ServiceImpl.java:76) //方法位置
cn.alavu.action.KindAddAction.execute(KindAddAction.java:45)
修改后的Flower.hbm.xml<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.alavu.model">
<!-- 每个class元素映射一个持久化类 -->
<class name="Flower" table="flower">
<id name="flowerId"/>
<property name="flowerName"/>
</class>
</hibernate-mapping>Flower.javapackage cn.alavu.model;public class Flower {
private int flowerId;
private String flowerName;
/* private float flowerPrice;
private int flowerStock;
private String flowerDesc;
private float flowerDiscount;
private String flowerPicture;
private Kind kind;
*/
public void SetFlowerId(int flowerId)
{
this.flowerId = flowerId;
}
public void setFlowerName(String flowerName)
{
this.flowerName = flowerName;
}
public int getFlowerId()
{
return flowerId;
}
public String getFlowerName()
{
return flowerName;
}
}