当前位置: 代码迷 >> Sybase >> JAVA中碰到sybase的两个要注意的地方
  详细解决方案

JAVA中碰到sybase的两个要注意的地方

热度:1515   发布时间:2013-02-26 00:00:00.0
JAVA中遇到sybase的两个要注意的地方.
之前自己一直用的是oracle 或者SQLSERVER数据库.所以也没有太在意sybase在JAVA中的使用差异

实际上归纳为一点,就是区分大小写.
不管是用hibernate还是直接用JDBC操作Sybase都是区分大小写的.
下面我把遇到的两点写一下.
1:在Hibernater中配置hbm.xml文件的时候.其中的映射的表名字和字段名字都要和实际创建表的时候的字段和表名字统一.
drop table tb_tablemesg_tabgocreate table tb_tablemesg_tab(  table_id      VARCHAR(40) not null,  table_code    VARCHAR(50) not null,  table_name    VARCHAR(50) not null,  DataSource_id VARCHAR(50)) go

此代码里面的最后一条DataSource_id

2:就是在写jdbc查询语句的时候有一个要注意的地方.
select t.name from users t where t.name='chen'
以上语句在oracle和sqlserver中都是可以的.但是在Sybase中却要写成
select name from users where name='chen'
其中的别名就不要了.另外因为没有看sybase中的多表联合查询的时候是如何写的.因为这里不能写别名.
有人知道的请留言谢谢.


关于第二点,别名的问题,谢谢mistyle的回复.
因为之前的程序里调试的代码是这样的.
String sql3 = "delete from tb_permission_tab  t where t.per_parentid='"+tablecode+"'";

我把t去掉以后就可以了.我再看看.晕差点误导别人.
t是关键字?
1 楼 mistyle 2008-09-11  
没有吧!我现在用的就是sybase数据库,写SQL的时候,大小写都是可以的,
另外取别名也没有问题的[size=large][/size]
2 楼 mistyle 2008-09-11  
大小写的问题,是因为数据库排序的影响,之前做的一个项目,用到的数据库的排序是不区分大小写的方式,后来我同事做的那个项目用到的另外一台服务器上的数据库,要不是今天看到你发的这篇博文,我都还没想到是这个原因,互相学习了
3 楼 daoyongyu 2008-09-17  
是要看你的数据库上的设置是否区分大小写,我们用的sql2000是区分大小写的。
  相关解决方案