三层架构model与DAOImpl实现

本文记录了一次解决Hibernate框架中表名映射错误的经历,详细解释了如何正确配置DAO层与model层之间的表名映射关系,避免查询失败的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天写程序,老是出现“查询客户信息失败”,表名 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";

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值