三层架构model与DAOImpl实现

来源:互联网 发布:oracle启动数据库监听 编辑:程序博客网 时间:2024/06/05 11:48

今天写程序,老是出现“查询客户信息失败”,表名 is not mapping。很奇怪以前没出错,今天怎么错了!看来是数据库表名的原因,于是回头查找名字,这时才发现,DAOImpl中的查找方法

finds(){

 String str="from system_setting";  //system_setting是数据库中的表名

……

}

而model层中的model和映射分别是:

model名字:SystemOption.java  ,里面有所存信息的属性id,price等,并有对应的get()、set()方法;

model的映射名:SystemOption.hbm.xml

其内的映射:

 

<hibernate-mapping>

    <class name="com.yuanit.app.model.SystemOption" table="system_setting" catalog="demo">

 

        <id name="id" type="java.lang.Integer">

            <column name="id" />

            <generator class="native" />

        </id>

 

 

 

        <property name="price" type="java.lang.Double">

            <column name="price" unique="true" />

        </property>

 

 

……

 

 

    </class>

</hibernate-mapping>

 

我原以为DAOImpl中str字符串对应的表名()就是数据库中所对应的数据库表名(system_setting),

现在知道错了,它对应的是model映射中的映射名:SystemOption,通过model的名字找到他的映射文件:SystemOption.hbm.xml

然后在映射文件中的table=“system_setting”才是数据库中的表名字!

所以:String str="from SystemOption";

这样理解就对了!但是不知道用术语怎么叙述!

原创粉丝点击