configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="jdbc.properties">properties>
<environments default="developemnt">
<environment id="developemnt">
<transactionManager type="JDBC">transactionManager>
<property name="driver" value="${driverClassName}">property>
<property name="url" value="${url}">property>
<property name="username" value="${username}">property>
<property name="password" value="${password}">property>
dataSource>
environment>
environments>
<mappers>
<mapper resource="StudentMapper.xml">mapper>
mappers>
configuration>
mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="rar">
<select id="getAll" resultType="Student">
select sno,name from students
select>
mapper>
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/friend?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false
username=root
password=123456
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.*;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.util.List;
public class MyTest {
@Test
public void testA() throws IOException {
//使用文件流读取核心配置文件
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
//创建SqlSessionFactory工厂
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
//取出sqlSession
SqlSession sqlSession = factory.openSession();
//取出查询操作
List list = sqlSession.selectList("rar.getAll");
list.forEach(student -> System.out.println(student));
//关闭sqlSession
sqlSession.close();
}
}
原因是啥吗
一点毛病没有,你把Student类的toString方法重写一下;直接用idea的右键一键生成就可以了。
你的代码没有问题,运行也正常,出现这种情况的原因是System.out.println(student)这行代码,打印的是student对象的引用地址,你可以打印它的属性,例如System.out.println(student.getName)之类的,如果想要打印完整的对象信息,你可以在student类里面重写一下toString方法,这样打印的内容就是你的toString方法里面定义的值了
重写一下toString就可以了
看下这篇博客,也许你就懂了,链接:深入理解JAVA中MyBatis框架(1)