对于数据库能查询到的数据但是java里却显示null的问题
旧梦吖。
原创
关注
1点赞·3212人阅读
问题:对于数据库能查询到的数据但是java里却显示null
解决方案:
① 很有可能是你设置的属性为 private ,然后没有给相对应的get和set方法 才导致无法获取对应的属性,然后显示为null
未修改前:
class Human{
private Integer id
public Human(Integer id) {
this.id = id
}
}
登录后复制
修改后:
class Human{
private Integer id
public Human(Integer id) {
this.id = id
}
public Integer getId() {
return id
}
public void setId(Integer id) {
this.id = id
}
}
登录后复制
② 可能是对应字段没有设置相对应,Bean对应类和数据库的对应类顺序名称类型要相一致,不得随意进行更改。
常见类型:
mysql ======== java
int ======== Ingeter
char,varchar ======== String
仅供参考...
分析你的逻辑应该如下:1、查询表1中符合条件的信息,获取一个结果集合1;
2、基于结果集合1循环,检索表2,获取结果集合2。
如此,如果表1、表2间存在直接关联关系(即直接使用结果集合1中的部分信息作为表2查询的条件),那么完全可以在后台将两张表关联查询,这样避免了通过java进行循环,在大数量级情况下会严重占用内存。
如果表1,表2间没有直接的关联关系(即通过循环表1,判断其中条件后按照其它的特定对照值去查询表2),那么仍然建议使用后台表关联查询,及将表1查询的结果集按照不同的条件获取的值转换成对应的映射值后作为一个基准集合,然后将这个集合与表2关联查询即可。具体的sql语句,得根据你使用的数据库和具体场景去编写。
总之,此类情况,完全可以交由数据库搞定,如果使用你现在的逻辑(即查询表1,循环结果集1,然后查询表2,获取结果集2),虽然原则上没有错,但会增加很多内存开销,在大数据量级的情况下,非常容易出现内存溢出的异常,并不作为合理的编码方式。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)