对于数据库能查询到的数据但是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
仅供参考...
解决方法:如果确认是单条数据,可以直接 Object? ***(**)。没有封装成对象时,默认返回的是List<Map<字段名称String,列值Object>>这样的数据。Dao接口:
List<Map<String,Object>>list(Integer id)
SQL:
<select id="list" parameterType="Integer" resultType="Map">。
拓展:
1、MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。iBATIS一词来源于"internet"和"abatis"的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(sDAO)。
2、MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
返回时,把list集合放到request里。request.setParameter("ls",list)页面处理方式有很多,比如<%...java代码%>或者用jstl的<c:forEach>标签循环出来。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)