今天在学MyBatis的时候需要打印student对象,如下
public class Test {
public static void main(String[] args) throws IOException{
Reader reader = Resources.getResourceAsReader("conf.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
SqlSession session = sessionFactory.openSession();
String statement = "entity.studentMapper.queryStudentByStuno";
Student student = session.selectOne(statement,1);
System.out.println(student);
session.close(); }
}
重写的toString方法为
public String toString() {
return this.stuNo +","+this.stuName +","+this.stuAge+","+this.graName;
}
输出结果为
entity.Student@35aea049
这应该是未重写的toString放法吧,可是我已经重写了toString而且显示了overrides,为什么不调用我重写的toString呢?
Student类加上实现Serializable序列化接口,参考如下
public class Student implements Serializable {
//serialVersionUID可以用ide自动生成
private static final long serialVersionUID = -983676524367844782L;
…
}
两个方法,上面那位已经说了 实现Serializable序列化接口;还有一个方法就是,打印的时候,手动调用toString()方法,这样也是可以的
System.out.println(student.toString());
package com.wangjing.util;
public class TestVO {
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "TestVO 类 [id=" + id + ", name=" + name + "]";
}
public static void main(String[] args) {
TestVO testVO = new TestVO();
testVO.setId("111");
testVO.setName("4560");
System.err.println(testVO.toString());
}
}