对于数据库能查询到的数据但是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
仅供参考...
import java.sql.Connectionimport java.sql.DriverManager
import java.sql.ResultSet
import java.sql.ResultSetMetaData
import java.sql.Statement
import java.util.Hashtable
public class GetDBFiled {
public static void conn() {
String driver = "com.mysql.jdbc.Driver"
String url = "jdbc:mysql://localhost:3306/databaseName"
String user = "root"
String password = "密码"
try {
Class.forName(driver)
Connection conn = DriverManager.getConnection(url, user, password)
if (!conn.isClosed()) {
String sql = "select * from pic"
System.out.println("Succeeded connecting to the Database!")
Statement statement =conn.createStatement()
ResultSet rs = statement.executeQuery(sql)
if (rs.next()) {
// 得到ResultSetMetaData
ResultSetMetaData rsmd = rs.getMetaData()
System.out.println(rsmd.getColumnCount())
for (int i = 1 i <= rsmd.getColumnCount() i++) {
Hashtable hst = new Hashtable()
// 把字段名放入Name
String name = String.valueOf(rsmd.getColumnLabel(i))
hst.put("Name", name)
// 把字段类型放入Type
String type = String.valueOf(rsmd.getColumnType(i))
hst.put("Type", type)
System.out.println(hst.get("Name")+" "+hst.get("Type"))
}
}
}
} catch (Exception e) {
System.out.println("出现异常")
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)