为什么运行该代码,返回的是地址值,我要返回字符串 public class FindByPageDemo { public static void main(String[] args) throws SQLException { Connection connection = DriverManager.getConnection("jdbc:mysql:///0602","root","123456"); Scanner scanner = new Scanner(System.in); System.out.println("请输入每页显示的条数:"); int pageSize = scanner.nextInt(); System.out.println("请输入当前页码:"); int currentPage = scanner.nextInt(); PreparedStatement statement = connection.prepareStatement("select * from emp limit ?,? "); statement.setInt(1,(currentPage-1)*pageSize); statement.setInt(2,pageSize); // executeQuery()方法只能执行一条SQL,返回ResultSet对象。 ResultSet set = statement.executeQuery(); ArrayList<Emp> list = new ArrayList(); while (set.next()){ Emp emp=new Emp(); emp.setId(set.getInt("id")); emp.setBonus(set.getDouble("bonus")); emp.setEname(set.getString("ename")); emp.setDept_id(set.getInt("dept_id")); emp.setJoindate(set.getDate("joindate")); emp.setMgr(set.getInt("mgr")); emp.setSalary(set.getDouble("salary")); emp.setJob_id(set.getInt("job_id")); list.add(emp); } for (Emp e:list) { System.out.println(e); } } }
时间: 2024-03-05 15:49:55 浏览: 199
这是因为在 `Emp` 类中没有重写 `toString()` 方法,所以在 `System.out.println(e);` 这一行代码中,会默认调用 `Object` 类中的 `toString()` 方法,而 `Object` 类中的 `toString()` 方法返回的是对象的地址值。
如果你想返回 `Emp` 对象的字符串表示,你可以在 `Emp` 类中重写 `toString()` 方法,例如:
```
public class Emp {
// 省略其他代码
@Override
public String toString() {
return "Emp{" +
"id=" + id +
", ename='" + ename + '\'' +
", job_id=" + job_id +
", mgr=" + mgr +
", joindate=" + joindate +
", salary=" + salary +
", bonus=" + bonus +
", dept_id=" + dept_id +
'}';
}
}
```
在上面的代码中,我们重写了 `Emp` 类中的 `toString()` 方法,将 `Emp` 对象转换为一个字符串表示,包含所有成员变量的值。这样,在调用 `System.out.println(e);` 时,就会打印出 `Emp` 对象的字符串表示,而不是地址值了。
阅读全文