整个逻辑说起来有点复杂我就不赘述我只举一个简单的例子 ..
现在又2个 变量 Integer it1 = 1.Integer it2 = 1. 这2个变量的值是从数据库里的2张表里面取出来的..用的数据库是sqlserver2008 持久层是 hibernate.
然后 if(it1==it2){
成功;
}
首先值都是一样的. 然后连接远程数据库的时候 判断永远不成功.连本地数据库的时候判断会成功.这点最让我费解.解决的办法是都转成int用==比较..
真心觉得严谨很重要.
现在又2个 变量 Integer it1 = 1.Integer it2 = 1. 这2个变量的值是从数据库里的2张表里面取出来的..用的数据库是sqlserver2008 持久层是 hibernate.
然后 if(it1==it2){
成功;
}
首先值都是一样的. 然后连接远程数据库的时候 判断永远不成功.连本地数据库的时候判断会成功.这点最让我费解.解决的办法是都转成int用==比较..
真心觉得严谨很重要.
解决方案 »
- SPRING+XFIRE 根据服务地址创建客户端调用程序的疑问
- 有struts2经验的请进,数据有效性验证一般用什么方法
- xmlbean有用过的么?内存问题?高手指教
- 发布一个java开发框架 开源 大家支持多提意见
- getHibernateTemplate返回空?为什么
- 为什么编译器提示xxx。java使用或者覆盖了过时API?
- hibernate 无法解析Configuration
- JNDI问题,满分相送!!!
- 解析过xml文件的朋友请进!
- springboot每次修改JSP内容时要重启,但是yml没有相关配置?
- Hibernate+oracle问题
- 两个数据库数据同步,出现java heap space 栈内存溢出
我很想知道 本地连接数据库很远程连数据库难道复制方式会不同?
也就是说 本地连接数据库给Integer it1 = 1;的赋值方式是这样.远程连接数据库给是
Integer it1 =new Integer(1);
难道是这个原因?
Integer属于引用类型 比较的时候比较内存地址
int 属于值类型 比较的时候比较值
虽然他们值是一样的 但引用的内存地址不一样
Integer 内部会缓存-128到127的对象,这个区间内如果不new就会使用缓存对象,但是new了就不==了。
当Integer类型数据值在[-128,127]这个范围时可以直接用==比较