Java操作数据库字段关键字 在线等... 项目是用SSH做的;DAO层是自动生成的方法和接口;问题是Oracel11G创建的数据库有的表的字段是关键字;比如ID,name,description,constraint....等等;DAO层手写的话可以加单引号解决;但是现在关键是自动生成的;求高人解决方案!在线等......... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 id, name, description 啥时候成关键词了?desc 才是吧? 方法也自动生成啊dao最好是自己写,别自动生成,dao里extends HibernateDaoSupport就可以完全拥有你需要的方法了,自动生成的不能完全满足需要,不如自己写了,简洁,符合自己的需求,也比自动生成的灵活,这样你的dao就是操作数据库表映射的实体了 create table IndustryCategory ( ID NUMBER(18) not null, name NUMBER(18), aaaaaa CHAR, largeCofffde CHAR(2), description PK_INDUSTRYCATEGORY primary key (ID));在oracle里创建可以成功;但是访问的时候就要这样'id', 'name'才能取到值;不然就报500错误:找不到字段为 ID,name ... 你看看这个文章http://sys53.javaeye.com/blog/38115然后 Hibernate配置文件:<hibernate-configuration> <session-factory> <property name="connection.driver_class">com.mysql.jdbc.Driver</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="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="myeclipse.connection.profile">mysql</property> <property name="hibernate.show_sql">true</property><property name="hbm2ddl.auto">update</property> <mapping resource="org/mdl/school/Person.hbm.xml" /> </session-factory></hibernate-configuration>注意 这句 <property name="dialect">org.hibernate.dialect.MySQLDialect</property>这个是mysql的配法。 <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>oracle 这样 http://lzc0088.javaeye.com/blog/430063 不会吧?我在 Oracle 中直接用 SELECT id, name FROM IndustryCategory; 没有问题的啊? 我怎么就没懂呢,在oracle11g中,id,name,description这些都变成关键字了,怎么可能,如果是关键字的话,你建表的时候就报错了,desc是关键字,估计是你的映射有问题,DAO层还可以自动生成啊,这个学习学习 这个......难道你在什么地方设置了区分大小写. 你上命令行上看看这个表的具体表结构是什么样的?使用desc IndustryCategory 问题解决了;今天重新建表搭框架测试了下;发现没问题了;无语了.以前给字段取名叫ID的话;在操作这字段的时候;就报找不到字段为'ID'的错误;现在又好了.....不解释;这太假了....DAO层的实现可以自动生成;我一直是让它自动生成的;我是先配hibernate在配spring在就让MyEclipse hibernate perspective去生成实体和DAO层;在配置struts; 有macbook下面那种网页效果的代码吗? 170分急求高手解决关于参数的问题 请问鼠标的一处怎么显示它的提示(hint) 高手请进!ie莫名其妙地死掉,原因何在? 大家看一下,这个类怎么用呢? Mave+jetty+springmvc 为何执行修改动作却变成了删除 请问如何使Windows Media Player6.4控件在线播AVI,而非先要下载呢? 高手们看看struts 2迭代set出不来 idea 导不进来包,并且包依赖大部分报错 求个LCDS 求velocity获取字符串长度方法?
dao最好是自己写,别自动生成,dao里extends HibernateDaoSupport就可以完全拥有你需要的方法了,自动生成的不能完全满足需要,不如自己写了,简洁,符合自己的需求,也比自动生成的灵活,这样你的dao就是操作数据库表映射的实体了
ID NUMBER(18) not null,
name NUMBER(18),
aaaaaa CHAR,
largeCofffde CHAR(2),
description PK_INDUSTRYCATEGORY primary key (ID)
);
在oracle里创建可以成功;但是访问的时候就要这样'id', 'name'才能取到值;不然就报500错误:找不到字段为 ID,name ...
http://sys53.javaeye.com/blog/38115
然后
Hibernate配置文件:
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">com.mysql.jdbc.Driver</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="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="myeclipse.connection.profile">mysql</property> <property name="hibernate.show_sql">true</property><property name="hbm2ddl.auto">update</property>
<mapping resource="org/mdl/school/Person.hbm.xml" />
</session-factory>
</hibernate-configuration>
注意 这句 <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
这个是mysql的配法。
oracle 这样
不会吧?我在 Oracle 中直接用 SELECT id, name FROM IndustryCategory; 没有问题的啊?
难道你在什么地方设置了区分大小写. 你上命令行上看看这个表的具体表结构是什么样的?
使用desc IndustryCategory
问题解决了;今天重新建表搭框架测试了下;发现没问题了;无语了.以前给字段取名叫ID的话;在操作这字段的时候;就报找不到字段为'ID'的错误;现在又好了.....不解释;这太假了....DAO层的实现可以自动生成;我一直是让它自动生成的;我是先配hibernate在配spring在就让MyEclipse hibernate perspective去生成实体和DAO层;在配置struts;